| 
       在php中html转换成文本提供了自带的函数strip_tags了,但有时此函数不够用,下面总结了一些用户自定的函数,各位可参考. 
最常用的使用php函数strip_tags,代码如下: 
	
	- <?php 
 
	- $mystr=<<<SATO 
 
	- 此处省略几十行HTML代码^_^ 
 
	- SATO; 
 
	- $str=strip_tags($mystr); 
 
	-  
 
	-  
 
	- ?> 
 
	 
 
自定义函数,代码如下: 
	
	- <?php 
 
	-  
 
	-  
 
	-  
 
	-  
 
	- $search = array ("'<script[^>]*?>.*?</script>'si",   
 
	-                  "'<[/!]*?[^<>]*?>'si",            
 
	-                  "'([rn])[s]+'",                  
 
	-                  "'&(quot|#34);'i",                  
 
	-                  "'&(amp|#38);'i", 
 
	-                  "'&(lt|#60);'i", 
 
	-                  "'&(gt|#62);'i", 
 
	-                  "'&(nbsp|#160);'i", 
 
	-                  "'&(iexcl|#161);'i", 
 
	-                  "'&(cent|#162);'i", 
 
	-                  "'&(pound|#163);'i", 
 
	-                  "'&(copy|#169);'i", 
 
	-                  "'&#(d+);'e");                     
 
	- $replace = array ("", 
 
	-                   "", 
 
	-                   "\1", 
 
	-                   """, 
 
	-                   "&", 
 
	-                   "<", 
 
	-                   ">", 
 
	-                   " ", 
 
	-                   chr(161), 
 
	-                   chr(162), 
 
	-                   chr(163), 
 
	-                   chr(169), 
 
	-                   "chr(\1)"); 
 
	- $text = preg_replace ($search, $replace, $document); 
 
	- ?> 
 
	 
 
后来我从网上看到了一个使用PHP写的方法,使用这个方法也可以实现将HTML转为TXT文本,个人觉得也还蛮实用的,在这里分享一下,代码如下: 
	
	- function HtmlToText($str){ 
 
	-   $str=preg_replace("/<sty(.*)/style>|<scr(.*)/script>|<!--(.*)-->/isU","",$str); 
 
	-   $alltext=""; 
 
	-   $start=1; 
 
	-   for($i=0;$i<strlen($str);$i++){ 
 
	-     if(($start==0)&&($str[$i]==">")){ 
 
	-       $start=1; 
 
	-     }else if($start==1){ 
 
	-       if($str[$i]=="<"){ 
 
	-         $start=0; 
 
	-         $alltext.="<font color='red'>|</font>"; 
 
	-       }else if(ord($str[$i])>31){ 
 
	-         $alltext.=$str[$i]; 
 
	-       } 
 
	-     } 
 
	- } 
 
	-  
 
	- $alltext = str_replace(" "," ",$alltext); 
 
	- $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext); 
 
	- $alltext = preg_replace("/[ ]+/s"," ",$alltext); 
 
	- return $alltext; 
 
	- } 
 
	 
 
使用下面这个方法也可以实现将简答的HTML代码转换为TXT文本,实例代码如下: 
	
	- function html2text($str,$encode = 'GB2312') 
 
	- { 
 
	-   $str = preg_replace("/<style .*?</style>/is", "", $str); 
 
	-   $str = preg_replace("/<script .*?</script>/is", "", $str); 
 
	-   $str = preg_replace("/<br s*/?/>/i", "n", $str); 
 
	-   $str = preg_replace("/</?p>/i", "nn", $str); 
 
	-   $str = preg_replace("/</?td>/i", "n", $str); 
 
	-   $str = preg_replace("/</?div>/i", "n", $str); 
 
	-   $str = preg_replace("/</?blockquote>/i", "n", $str); 
 
	-   $str = preg_replace("/</?li>/i", "n", $str); 
 
	-   $str = preg_replace("/ /i", " ", $str); 
 
	-   $str = preg_replace("/ /i", " ", $str); 
 
	-   $str = preg_replace("/&/i", "&", $str); 
 
	-   $str = preg_replace("/&/i", "&", $str); 
 
	-   $str = preg_replace("/</i", "<", $str); 
 
	-   $str = preg_replace("/</i", "<", $str); 
 
	-   $str = preg_replace("/“/i", '"', $str); 
 
	-   $str = preg_replace("/&ldquo/i", '"', $str); 
 
	-      $str = preg_replace("/‘/i", "'", $str); 
 
	-      $str = preg_replace("/&lsquo/i", "'", $str); 
 
	-      $str = preg_replace("/’/i", "'", $str); 
 
	-      $str = preg_replace("/&rsquo/i", "'", $str); 
 
	-   $str = preg_replace("/>/i", ">", $str); 
 
	-   $str = preg_replace("/>/i", ">", $str); 
 
	-   $str = preg_replace("/”/i", '"', $str); 
 
	-   $str = preg_replace("/&rdquo/i", '"', $str); 
 
	-   $str = strip_tags($str); 
 
	-   $str = html_entity_decode($str, ENT_QUOTES, $encode); 
 
	-   $str = preg_replace("/&#.*?;/i", "", $str); 
 
	-       
 
	-   return $str; 
 
	- }
 
	 
 
      
      (责任编辑:admin) |