須要將HTML轉換爲TXT文本的內容。
因而翻了翻W3C的PHP手冊,由於對PHP的函數庫不太熟悉,只找到htmlspecialchar(不對轉義字符進行轉換)函數和nl2br(將字符串轉換成HTML的標籤)函數。這顯然不是我如今想要的,因而我在本身平時積累下來的PHP函數庫中,使用中文進行了一翻搜索,終於發現了一個函數——strip_tags(功能:從字符串中去除HTML和PHP標記)php
<?php
$mystr=<<<SATO
此處省略幾十行HTML代碼^_^
SATO;
$str=strip_tags($mystr);
//到這裏就已經達到個人HTML轉爲TXT文本的目的了,哈哈,使用這個函數真方便
//下面是插件的一些切詞等操做,這裏就很少說了
?>
後來我從網上看到了一個使用PHP寫的方法,使用這個方法也能夠實現將HTML轉爲TXT文本,我的以爲也還蠻實用的,在這裏分享一下,代碼以下:
function HtmlToText($str){
$str=preg_replace("/<sty(.*)\/style>|<scr(.*)\/script>|<!--(.*)-->/isU","",$str);//去除CSS樣式、JS腳本、HTML註釋
$alltext="";//用於保存TXT文本的變量
$start=1;//用於檢測<左、>右標籤的控制開關
for($i=0;$i<strlen($str);$i++){//遍歷通過處理後的字符串中的每個字符
if(($start==0)&&($str[$i]==">")){//若是檢測到>右標籤,則使用$start=1;開啓截取功能
$start=1;
}else if($start==1){//截取功能
if($str[$i]=="<"){//若是字符是<左標籤,則使用<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;
}
使用上面這個方法也能夠實現將簡答的HTML代碼轉換爲TXT文本。
最後說一下htmlspecialchars、nl2br這兩個與HTML相關的PHP函數:
htmlspecialchars(不對轉義字符進行轉換):
實例:echo htmlspecialchars("<a href=\"#\">baidu</a>");//<a href="#">baidu</a>
nl2br(將字符串轉換成HTML的標籤):
實例:echo nl2br("<b>PHP</b>");//PHP
以上就是關於HTML轉換爲TXT文本的一些方法,不妥之處懇請指正^_^html