溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php如何清除html代碼

發(fā)布時間:2021-02-25 10:11:42 來源:億速云 閱讀:209 作者:清風 欄目:編程語言

這篇“php如何清除html代碼”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“php如何清除html代碼”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。

php有什么用

php是一個嵌套的縮寫名稱,指的是英文超級文本預(yù)處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因為php是開源的,從而使得php經(jīng)久不衰。

php清除html代碼的方法:1、通過“strip_tags($str)”去掉HTML及PHP的標記;2、通過htmlspecialchars把html中的標簽轉(zhuǎn)換為html實體;3、通過正則表達式過濾css等樣式。

php中去除文字內(nèi)容中所有html代碼

PHP已經(jīng)為我們提供了很多清除html格式的方法了,下面就讓老高介紹一下。

I. strip_tags

strip_tags($str) 去掉 HTML 及 PHP 的標記

語法: string strip_tags(string str);

傳回值: 字串

函式種類: 資料處理

內(nèi)容說明 :

解析:本函式可去掉字串中包含的任何 HTML 及 PHP 的標記字串。若是字串的 HTML 及 PHP 標簽原來就有錯,例如少了大于的符號,則也會傳回錯誤。這個函數(shù)和 fgetss() 有著相同的功能

例子

echo strip_tags("Hello world!");
# Hello world!

II. htmlspecialchars

這個函數(shù)把html中的標簽轉(zhuǎn)換為html實體,博客的代碼展示就必須使用這個函數(shù),要不貼出來的代碼就會被執(zhí)行了。

預(yù)定義的字符是:

& (和號) 成為 &
” (雙引號) 成為 ”
‘ (單引號) 成為 ‘
< (小于) 成為 < > (大于) 成為 >

例子

$new = htmlspecialchars("Test", ENT_QUOTES);
echo $new; 
# <a href='test'>Test</a>
# 如果需要展現(xiàn)
,那么瀏覽器解析HTML的時候會自動將他變?yōu)閾Q行
# 但是通過htmlspecialchars就可以讓< 變?yōu)?nbsp;'

與htmlspecialchars功能相反的函數(shù)是htmlspecialchars_decode,他會把HTML實體轉(zhuǎn)化為字符!

III. 后補函數(shù)

PHP去除html、css樣式、js格式的方法很多,但發(fā)現(xiàn),它們基本都有一個弊端:空格往往清除不了

經(jīng)過不斷的研究,最終找到了一個理想的去除html包括空格css樣式、js 的PHP函數(shù)。

$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("/

以上是“php如何清除html代碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI