本文章来给大家介绍关于各种PHP去除多余的HTML,Javascrit,Css标签 方法与实现程序,大家可进入参考.
1.不保留任何HTML标签,代码会是这样:echo strip_tags($str);
2.只保留
一个标签的话,只需要将
字符串写到strip_tags的第二个参数中,代码会是这样:echo strip_tags($str, "");
3.我们要保留
与…多个标签,只需要将多个标签用空格分隔后写到strip_tags的第二个参数中,代码会是这样:echo strip_tags($str, "");
4.保留所有标签,仅仅转义用addslashes(), stripslashes(), htmlspecialchars(), htmlentities(), nl2br() 等函数.
addslashes(), stripslashes() 一般是入数据库和出库的时候使用,以免变量中存储类似引号这些关键词,这样的话,本来是内容的部分却被数据库识别为标识符来执行,就会引起错误.
htmlspecialchars() 函数只用来转义少量HTML, &,双引号,大于号和小于号.并不会全部转换成 HTML 所定的 ASCII 转换
htmlentities() 本函数有点像 htmlspecialchars() 函数,但本函数会将所有 string 的字符都转成 HTML 的特殊字集字符串.不过在转换后阅读网页源代码的方面,会有很多困扰,尤其是网页源代码的中文字会变得不知所云,浏览器上看到的还是正常的.
自带函数去除html标记
strip_tags
去掉 HTML 及 PHP 的标记.
语法: string strip_tags(string str);
传回值: 字串
函式种类: 资料处理
实例代码如下:
<?php $new = htmlspecialchars("Test", ENT_QUOTES); echo $new; ?>
函式将特殊字元转成 HTML 的字串格式 ( .... ).最常用到的场合可能就是处理客户留言的留言版了.
& (和) 转成 &
" (双引号) 转成 "
< (小于) 转成 <
> (大于) 转成 >
此函式只转换上面的特殊字元,并不会全部转换成 HTML 所定的 ASCII 转换.
这里只替换 html,js,css
实例代码如下:
<?php function noHTML($descclear) { $descclear = str_replace("\r", "", $descclear); //过滤换行 $descclear = str_replace("\n", "", $descclear); //过滤换行 $descclear = str_replace("\t", "", $descclear); //过滤换行 $descclear = str_replace("\r\n", "", $descclear); //过滤换行 $descclear = preg_replace("/\s+/", " ", $descclear); //过滤多余回车 $descclear = preg_replace("/<[ ]+/si", "<", $descclear); //过滤<__("<"号后面带空格) $descclear = preg_replace("/<\!--.*?-->/si", "", $descclear); //过滤html注释 $descclear = preg_replace("/<(\!.*?)>/si", "", $descclear); //过滤DOCTYPE $descclear = preg_replace("/<(\/?html.*?)>/si", "", $descclear); //过滤html标签 $descclear = preg_replace("/<(\/?head.*?)>/si", "", $descclear); //过滤head标签 $descclear = preg_replace("/<(\/?meta.*?)>/si", "", $descclear); //过滤meta标签 $descclear = preg_replace("/<(\/?body.*?)>/si", "", $descclear); //过滤body标签 $descclear = preg_replace("/<(\/?link.*?)>/si", "", $descclear); //过滤link标签 $descclear = preg_replace("/<(\/?form.*?)>/si", "", $descclear); //过滤form标签 $descclear = preg_replace("/cookie/si", "COOKIE", $descclear); //过滤COOKIE标签 $descclear = preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si", "", $descclear); //过滤applet标签 $descclear = preg_replace("/<(\/?applet.*?)>/si", "", $descclear); //过滤applet标签 $descclear = preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si", "", $descclear); //过滤style标签 $descclear = preg_replace("/<(\/?style.*?)>/si", "", $descclear); //过滤style标签 $descclear = preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si", "", $descclear); //过滤title标签 $descclear = preg_replace("/<(\/?title.*?)>/si", "", $descclear); //过滤title标签 $descclear = preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si", "", $descclear); //过滤object标签 $descclear = preg_replace("/<(\/?objec.*?)>/si", "", $descclear); //过滤object标签 $descclear = preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si", "", $descclear); //过滤noframes标签 $descclear = preg_replace("/<(\/?noframes.*?)>/si", "", $descclear); //过滤noframes标签 $descclear = preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si", "", $descclear); //过滤frame标签 $descclear = preg_replace("/<(\/?i?frame.*?)>/si", "", $descclear); //过滤frame标签 $descclear = preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si", "", $descclear); //过滤script标签 $descclear = preg_replace("/<(\/?script.*?)>/si", "", $descclear); //过滤script标签 $descclear = preg_replace("/javascript/si", "Javascript", $descclear); //过滤script标签 $descclear = preg_replace("/vbscript/si", "Vbscript", $descclear); //过滤script标签 $descclear = preg_replace("/on([a-z]+)\s*=/si", "On\\1=", $descclear); //过滤script标签 $descclear = preg_replace("/&#/si", "&#", $descclear); //过滤script标签,如javAsCript:alert();//使用正则替换 $pat = "/<(\/?)(script|i?frame|style|html|body|li|i|map|title|img|link|span|u|font|table|tr|b|marquee|td|strong|div|a|meta|\?|\%)([^>]*?)>/isU"; $descclear = preg_replace($pat, "", $descclear); return $descclear; ?>