这个例子描述了PHP内容过滤和HTML标记完成的PHP实现
方法:
如果页面HTML标记的内容没有完全
显示,由于页面混乱,某些表标签不完整,或者将内容页包含到
本地HTML中,我们可以编写一个
函数来完成HTML标记并过滤掉无用的HTML标记。
php标签自动完成、
关闭、过滤
功能的方法:
代码:
功能closetags($ HTML){
preg_match_all(' # # IU,HTML美元美元,结果);
openedtags美元= $结果{ 1 };
preg_match_all(' # # IU,HTML美元美元,结果);
closedtags美元= $结果{ 1 };
len_opened美元=计数($ openedtags);
如果(计数($ closedtags)= = $ len_opened){
返回html;
}
openedtags = array_reverse美元(美元openedtags);
为($我= 0;美元美元美元我<< len_opened;i++){
如果(!in_array($ openedtags {我},closedtags美元)){
美元=;
{ }人
unset(closedtags { array_search美元(美元openedtags {我},closedtags美元)));
}
}
返回html;
}
closetags()解析:
array_reverse():这个函数将
创建一个新的数组并返回原数组的元素。如果第二个
参数指定为true,要素保持一致,否则将失去的关键。
array_search():array_search(价值、阵列、严格),它看起来像in_array阵列中的关键值()。如果你觉得值,返回的关键要素。如果没有找到,返回false。如果第三参数严格指定为真,只有在所有数据
类型和值返回相应的关键要素。
php标签自动完成、关闭、过滤功能方法二:
功能checkhtml($ HTML){
HTML = stripslashes美元($ HTML);
preg_match_all( / /
$
搜索< < < >;
$
替换{ = < <;
$搜索{;
$替换{;
如果($ { 1 }){
allowtags美元= 'img |
字体| div |表| TBODY TR TD | | |日| BR | P | B |强|我| U | EM |跨度| OL | UL |李; / /允许标签
为MS { 1 } = array_unique($ MS { 1 });
foreach($ MS { 1 }美元值){
= $搜索;
价值= shtmlspecialchars(价值);
价值= str_replace(数组(数组,' / *)('。',' / '),美元的价值);
价值= preg_replace(阵列( /(Javascript
脚本| | eval |行为|表达) /我
如果(!preg_match( / / ^ { | }($ allowtags)( + |美元) /
$ =;
}
$替换{空($);
}
}
HTML = str_replace美元($搜索,取代美元美元,HTML);
返回html;
}
取消html代码
功能shtmlspecialchars($string){
如果(is_array($字符串)){
foreach($字符串作为键=美元美元Val){
为字符串{ $关键} = shtmlspecialchars(美元值);
}
{人}
($字符串preg_replace /((#( D {二} | x { a-fa-f0-9 } { 4 }){ } { } | a-za-z a-z0-9 {2,5 }); / 1),
str_replace(array(' ',' ',' '),阵列(' ',' ',' '),为字符串);
}
返回$字符串;
}
checkhtml($ HTML)解析:
Stripslashes():函数
删除反斜杠,用addslashes()添加功能。这个功能是用来
清理数据库数据或HTML表单中检索。
关于PHP相关内容的更多读者感兴趣的读者可以看到特别站:PHP数据结构和算法
教程 希望本文能对PHP
程序设计有所帮助。