php 循环抓取网页内容(PHP实现网页内容html标签补全和过滤的方法结合实例)
优采云 发布时间: 2022-01-10 22:11php 循环抓取网页内容(PHP实现网页内容html标签补全和过滤的方法结合实例)
本文文章主要介绍PHP补全和过滤网页内容HTML标签的方法,结合PHP标签检查、补全、关闭、过滤等相关操作技巧分析常用操作技巧举例。朋友可以参考以下
本文的例子描述了PHP完成和过滤网页内容的HTML标签的方法。分享给大家,供大家参考,如下:
如果你的网页内容的html标签不完整,有些表格标签不完整导致页面混乱,或者你的内容以外的部分html页面收录在内,我们可以写一个函数方法来完成html标签和过滤去掉无用的html标签。
php让HTML标签自动补全、关闭、过滤功能方法一:
代码:
function closetags($html) {
preg_match_all('##iU', $html, $result);
$closedtags = $result[1];
$len_opened = count($openedtags);
if (count($closedtags) == $len_opened) {
return $html;
}
$openedtags = array_reverse($openedtags);
for ($i=0; $i < $len_opened; $i++) {
if (!in_array($openedtags[$i], $closedtags)) {
$html .= '';
}else {
unset($closedtags[array_search($openedtags[$i], $closedtags)]);
}
}
return $html;
}
closetags() 解析:
array_reverse() :此函数反转原创数组中元素的顺序,创建一个新数组并返回。如果第二个参数指定为true,则元素的键名保持不变,否则键名会丢失。
array_search() : array_search(value,array,strict),这个函数像 in_array() 一样在数组中搜索一个键值。如果找到该值,则返回匹配元素的键名。如果未找到,则返回 false。如果第三个参数strict指定为true,则只有数据类型和值一致时才返回对应元素的键名。
php让HTML标签自动补全、关闭、过滤功能方法二:
function checkhtml($html) {
$html = stripslashes($html);
preg_match_all("/\ $val) {
$string[$key] = shtmlspecialchars($val);
}
} else {
$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', ''), array('&', '"', ''), $string));
}
return $string;
}
checkhtml($html) 解析:
stripslashes():该函数删除由addslashes() 函数添加的反斜杠。此函数用于清理从数据库或 HTML 表单中检索到的数据。
以上是PHP完成和过滤网页内容中html标签的两种方法的详细介绍。更多详情请关注第一PHP社区其他相关话题文章!