溫馨提示×

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

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

php將html轉(zhuǎn)文本的方法

發(fā)布時(shí)間:2020-08-21 10:44:36 來(lái)源:億速云 閱讀:379 作者:小新 欄目:編程語(yǔ)言

這篇文章給大家分享的是有關(guān)php將html轉(zhuǎn)文本的方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

php將html轉(zhuǎn)文本的方法:首先創(chuàng)建一個(gè)PHP示例文件;然后創(chuàng)建一個(gè)“HtmlToText”方法;接著使用“preg_replace”等方法將HTML轉(zhuǎn)為TXT文本即可。

php將html轉(zhuǎn)文本的方法

PHP將HTML轉(zhuǎn)為TXT文本

需要將HTML轉(zhuǎn)換為TXT文本的內(nèi)容。

于是翻了翻W3C的PHP手冊(cè),因?yàn)閷?duì)PHP的函數(shù)庫(kù)不太熟悉,只找到htmlspecialchar(不對(duì)轉(zhuǎn)義字符進(jìn)行轉(zhuǎn)換)函數(shù)和nl2br(將字符串轉(zhuǎn)換成HTML的標(biāo)簽)函數(shù)。這顯然不是我現(xiàn)在想要的,于是我在自己平時(shí)積累下來(lái)的PHP函數(shù)庫(kù)中,使用中文進(jìn)行了一翻搜索,終于發(fā)現(xiàn)了一個(gè)函數(shù)——strip_tags(功能:從字符串中去除HTML和PHP標(biāo)記)

<?php
$mystr=<<<SATO
此處省略幾十行HTML代碼^_^
SATO;
$str=strip_tags($mystr);
//到這里就已經(jīng)達(dá)到我的HTML轉(zhuǎn)為TXT文本的目的了,哈哈,使用這個(gè)函數(shù)真方便
//下面是插件的一些切詞等操作,這里就不多說(shuō)了
?>

后來(lái)我從網(wǎng)上看到了一個(gè)使用PHP寫的方法,使用這個(gè)方法也可以實(shí)現(xiàn)將HTML轉(zhuǎn)為TXT文本,個(gè)人覺(jué)得也還蠻實(shí)用的,在這里分享一下,代碼如下:

function HtmlToText($str){
  $str=preg_replace("/<sty(.*)\/style>|<scr(.*)\/script>|<!--(.*)-->/isU","",$str);//去除CSS樣式、JS腳本、HTML注釋
  $alltext="";//用于保存TXT文本的變量
  $start=1;//用于檢測(cè)<左、>右標(biāo)簽的控制開(kāi)關(guān)
  for($i=0;$i<strlen($str);$i++){//遍歷經(jīng)過(guò)處理后的字符串中的每一個(gè)字符
    if(($start==0)&&($str[$i]==">")){//如果檢測(cè)到>右標(biāo)簽,則使用$start=1;開(kāi)啟截取功能
      $start=1;
    }else if($start==1){//截取功能
      if($str[$i]=="<"){//如果字符是<左標(biāo)簽,則使用<font color='red'>|</font>替換
        $start=0;
        $alltext.="<font color='red'>|</font>";
      }else if(ord($str[$i])>31){//如果字符是ASCII大于31的有效字符,則將字符添加到$alltext變量中
        $alltext.=$str[$i];
      }
    }
}
//下方是去除空格和一些特殊字符的操作
$alltext = str_replace(" "," ",$alltext);
$alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
$alltext = preg_replace("/[ ]+/s"," ",$alltext);
return $alltext;
}

使用上面這個(gè)方法也可以實(shí)現(xiàn)將簡(jiǎn)答的HTML代碼轉(zhuǎn)換為TXT文本。

最后說(shuō)一下htmlspecialchars、nl2br這兩個(gè)與HTML相關(guān)的PHP函數(shù):

htmlspecialchars(不對(duì)轉(zhuǎn)義字符進(jìn)行轉(zhuǎn)換):

實(shí)例:echo htmlspecialchars("<a href=\"#\">baidu</a>");//&lt;a href=&quot;#&quot;&gt;baidu&lt;/a&gt;

nl2br(將字符串轉(zhuǎn)換成HTML的標(biāo)簽):

實(shí)例:echo nl2br("<b>PHP</b>");//PHP

感謝各位的閱讀!關(guān)于php將html轉(zhuǎn)文本的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

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

AI