php正則過濾html標簽
❶ 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標簽
php正則表達式:<em>.*</em>
完整的php利用正則表達式刪除html標簽程序如下:
<?php
$str='<p>12345<em>123abc"def"</em></p>';
echopreg_replace('#<em>.*</em>#is','',$str);
?>
運行結果:
<p>12345</p>
❸ php用正則表達式過濾html標簽的問題
恕我直言(奧巴馬更愛說這個詞),你對正則表達式和你提供的這些代碼的作用一無所知
[ATTACHMENT]和正則表達式沒有關系,推斷是DISCUZ等用到的BBCODE,你的目的就是用正則表達式把<a href="xxx.php?filename=abc.jpg">圖片</a>這樣的HTML替換成
[ATTACHMENT]abc.jpg[/ATTACHMENT]
So,
你提供的$_pattern的0和1元素分別是正則表達式和要替換成的字元。
簡要說一下,匹配的正則表達式里的()中間的內容可以在被替換的字元串中的$1,$2等表示。
看正則表達式有3個括弧,第二個和第三個分別匹配文件名和擴展名
所以,要替換成的字元串中的$2和$3將是文件名和擴展名
於是,
以上的實例被替換的結果是
[ATTACHMENT]abc.jpg[/ATTACHMENT]
at last and the point
系統學習正則表達式,他是非常有用的
by the way,20分對我來說根本不算什麼,寫這幾句話的功夫20元都掙上了
只是想幫幫你
❹ 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部分標簽
$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標簽
選擇1.將特殊符號進行轉換,可以用htmlspecialchars把<變為「<」等
選擇2.用正則表達式替換,將標簽都刪除:
$content=preg_replace('/\<.+?\>/','',$content);
❼ php如何處理html標簽
需要用到一個函數實現,htmlentities,就是將字元串轉換成html實體,用法你可以查一下php手冊,同時它還有個反函數,htmlspecialchars_decode
❽ php 過濾掉html標簽及標簽內的所有內容
方法一:使用strip_tags()函數
strip_tags() 函數剝去字元串中的 HTML、XML 以及PHP的標簽。
使用案例:
$string = "<p>這里是潘旭博客</p>"
$newStr = strip_tags($string);
echo $newStr;
方法二:使用str_replace()函數
str_replace() 函數以其他字元替換字元串中的一些字元(區分大小寫)
使用案例:
$string = "<p>這里是潘旭博客</p>";
$newStr = str_replace(array("<p>","</p>"),array("",""));
echo $newStr;
另外還有一種是通過正則的方法,請參考:https://panxu.net/article/8385.html
❾ 正則表達式如何過濾HTML標簽中的屬性值
1、過濾所有html標簽的屬性的正則表達式:
$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 JavaScript
"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 標記
"'([\r\n])[\s]+'", // 去掉空白字元
"'&(quot|#34);'i", // 替換 HTML 實體
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i"
); // 作為 PHP 代碼運行
$replace = array ("","","\\1","\"","&","<",">"," ");
$html = preg_replace($search, $replace, $html);
頂
❿ 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]
是你想要的結果?