php過濾html
❶ php處理解析HTML字元串的幾種方法
1.strip_tags() 函數:可以過濾掉HTML和PHP標簽,返回一個全新的字元串!
用法:
string strip_tags ( string 要處理的字元串 [, string 想保留的標簽] )
比如: 標簽,就這樣寫握早,strip_tags($str, 「」) ,如果要保留多個標簽,則標簽之間用空格隔開。
2.用 strpos , substr 混合處理
當我們要截取的字元串,有唯一的標識時,通常可以用這個辦法,比如取一個帶唯一id的液敏標簽abc,只要找到和,中段埋雀間的內容就都出來了。
3.PHP DOMDocument
DOMDocument 提供的方法是輸出沒有任何標簽的純文本,如果你只需要文本數據,那用這個方法最簡單拉
❷ php正則表達式過濾某些HTML標簽代碼
如果只要
<b>
標簽,不用「過濾」的方法,用「提取」的方法更簡單。
$str
=
'<img
src="xxx"><b>aaa</b><br>\n<b>b\nbb</b><span
style="color:#FF0000;">yyy</span>';
$pattern
=
'/<b>(((?!<\/b>).)*)<\/b>/mi';
preg_match_all($pattern,
$str,
$matches,
PREG_SET_ORDER);
print_r($matches);
輸出
Array
(
[0]
=>
Array
(
[0]
=>
<b>aaa</b>
[1]
=>
aaa
[2]
=>
a
)
[1]
=>
Array
(
[0]
=>
<b>b\nbb</b>
[1]
=>
b\nbb
[2]
=>
b
)
)
$matches[0][0],$matches[1][0]
是你想要的結果?
❸ 用php過濾html部分標簽
$str=preg_replace("/\s+/", " ", $str); //過濾多餘回車
$str=preg_replace("/<[ ]+/si","<",$str); //過濾<__("<"號後面帶空格)
$str=preg_replace("/<\!--.*?-->/si","",$str); //注釋
$str=preg_replace("/<(\!.*?)>/si","",$str); //過濾DOCTYPE
$str=preg_replace("/<(\/?html.*?)>/si","",$str); //過濾html標簽
$str=preg_replace("/<(\/?head.*?)>/si","",$str); //過濾head標簽
$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //過濾meta標簽
$str=preg_replace("/<(\/?body.*?)>/si","",$str); //過濾body標簽
$str=preg_replace("/<(\/?link.*?)>/si","",$str); //過濾link標簽
$str=preg_replace("/<(\/?form.*?)>/si","",$str); //過濾form標簽
$str=preg_replace("/cookie/si","COOKIE",$str); //過濾COOKIE標簽
$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //過濾applet標簽
$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //過濾applet標簽
$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //過濾style標簽
$str=preg_replace("/<(\/?style.*?)>/si","",$str); //過濾style標簽
$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //過濾title標簽
$str=preg_replace("/<(\/?title.*?)>/si","",$str); //過濾title標簽
$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //過濾object標簽
$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //過濾object標簽
$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //過濾noframes標簽
$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //過濾noframes標簽
$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //過濾frame標簽
$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //過濾frame標簽
$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //過濾script標簽
$str=preg_replace("/<(\/?script.*?)>/si","",$str); //過濾script標簽
$str=preg_replace("/javascript/si","Javascript",$str); //過濾script標簽
$str=preg_replace("/vbscript/si","Vbscript",$str); //過濾script標簽
$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //過濾script標簽
$str=preg_replace("//si","&#",$str); //過濾script標簽,如javAsCript:alert(
清除空格,換行
function DeleteHtml($str)
{
$str = trim($str);
$str = strip_tags($str,"");
$str = ereg_replace("\t","",$str);
$str = ereg_replace("\r\n","",$str);
$str = ereg_replace("\r","",$str);
$str = ereg_replace("\n","",$str);
$str = ereg_replace(" "," ",$str);
return trim($str);
}
過濾HTML屬性
1,過濾所有html標簽的正則表達式:
復制代碼 代碼如下:
</?[^>]+>
//過濾所有html標簽的屬性的正則表達式:
$html = preg_replace("/<([a-zA-Z]+)[^>]*>/","<\\1>",$html);
3,過濾部分html標簽的正則表達式的排除式(比如排除<p>,即不過濾<p>):
復制代碼 代碼如下:
</?[^pP/>]+>
4,過濾部分html標簽的正則表達式的枚舉式(比如需要過濾<a><p><b>等):
復制代碼 代碼如下:
</?[aApPbB][^>]*>
5,過濾部分html標簽的屬性的正則表達式的排除式(比如排除alt屬性,即不過濾alt屬性):
復制代碼 代碼如下:
\s(?!alt)[a-zA-Z]+=[^\s]*
6,過濾部分html標簽的屬性的正則表達式的枚舉式(比如alt屬性):
復制代碼 代碼如下:
(\s)alt=[^\s]*
❹ php過濾多餘html標簽的代碼!
$str = 」 This line contains\tliberal \r\n use of whitespace.\n\n」;
$str = trim($str);// 首先去掉頭尾空格
$str = preg_replace(』/\s(?=\s)/』, 『』, $str);// 接著去掉兩個空格以上的
$str = preg_replace(』/[\n\r\t]/』, 『 『, $str);// 最後將非空格替換為一個空格
使用上面的例子可以去掉所有多餘的空格。
首先使用TRim()去頭尾空格,
接著用preg_replace()去掉重復的空格。
當中的(?=)表示只匹配後面的空格跟隨前面的空格的空格
❺ PHP 過濾HTML中除了img標簽外其它所有標簽,同時保留標簽內容,但<script>標簽內的內容都清除。
提供實例:
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// 允許 <p> 和 <a>
echo strip_tags($text, '<p><a>');
?>
以上常式會輸出:
Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
具體做法:
<?php
echo strip_tags($text, 'img');
?>
❻ PHP如何去除字元串中的html標記
php去除字元串中的html標記,用到的工具:notepad++,代碼如下:
1.
<?php
echostrip_tags("Hello<h1>china!</h1>");
?>
說明:strip_tags函數就是過濾html標簽。
2.輸出結果:Hello china!
注意事項:win和linux都適用!
❼ php文件輸出如何過濾掉html,代碼如下
<b>asasasas</b>這個html標簽是加粗標簽,如果你想在瀏覽器上顯示的是加粗的asasasas就直接輸出
<?php
echo "<b>asasasas</b>";
?>
如果你想輸出的<b>asasasas</b>這個字元串的話呢
<?php
echo htmlspecialchars("<b>asasasas</b>");
?>