php過濾html
① 求一個php簡單的過濾除<br>,<p>,<style>html標簽的正則或方法
針對來你這個<a>123</a>的例子自的
$a=<<<str
<a>123</a>
str;
$preg ="/<(a)>(.*?)<\/(\1)>/is";
$str = preg_replace($preg, "<a>\\2</a>", $a);
echo $str;
除此之外PHP還有一個 過濾標簽的函數 你可以看一下手冊
② php過濾多餘html標簽的代碼!
php過濾多餘html標簽的代碼!
nction filterhtml($str)
{
$str=stripslashes($str);
$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.*?)>(.*?)(\/nofr......年年順景則源廣 歲歲平安福壽多 吉星高照
③ 求php 過濾html標簽 但不過濾標簽裡面的文字 的代碼
<?php
$str='<ahref="#">href</a>';
//echohtmlspecialchars($str);
echostrip_tags($str);
?>
④ php如何過濾編輯器的html標簽
選擇1.將特殊符號進行轉換,可以用htmlspecialchars把<變為「<」等
選擇2.用正則表達式替換,將標簽都刪除:
$content=preg_replace('/\<.+?\>/','',$content);
⑤ php mysql查詢的時候怎麼過濾掉html
你這個問題我之前做項目的時候也遇到過,你可以從數據入庫時入手解決,具體做法版就是你可在把數據存入權到數據的時候用strip_tags()函數剝離HTML標簽,這樣你在查詢的時候就不會遇到這種情況了,完全都是數據,如果存入資料庫的數據必須要有HTML標記的話那入庫的時候可以考慮用htmlspacialchars()函數,希望能夠幫到你
⑥ 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,代碼如下
<b>asasasas</b>這個html標簽是加粗標簽,如果你想在瀏覽器上顯示的是加粗的asasasas就直接輸出
<?php
echo "<b>asasasas</b>";
?>
如果你想輸出的<b>asasasas</b>這個字元串的話呢
<?php
echo htmlspecialchars("<b>asasasas</b>");
?>
⑨ php含有html標簽的內容需要過濾嗎
防禦來XSS攻擊,最簡單粗暴的做法就是自用htmlspecialchars把特殊字元(&,",',<,>)替換為HTML實體(&"'<>)後輸出.防禦XSS攻擊,最復雜的做法就是自己寫正則過濾,不過還好有HTMLPurifier庫,除了能過濾XSS代碼,還能把不完整的標簽補全或者去掉.
<?php
# http://htmlpurifier.org/download
require dirname(__FILE__).'/htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
echo $purifier->purify($html);
⑩ Thinkphp 過濾HTML標簽
經過截獲http的請求數據發現轉義是發生在thinkphp接收html文本之前由瀏覽器或在線編輯器自內動轉義的。
對於使容用create方法時可以在Model文件夾中定義模型類,在模型類中定義(content是你提交的欄位):
protected $_auto = array(
array('content', 'htmlspecialchars_decode', self::MODEL_BOTH, 'function'),
);
然後用D("模型名")->create();
如果是用I函數接收的可以改為$content = I('content', '', 'htmlspecialchars_decode');