当前位置:首页 > PHP教程 > php应用 > 列表

PHP将HTML转换成纯文本内容实例

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-11 16:03:49 浏览: 评论:0 

把html转换成纯文本我们可以使用很多方法,不过最简单的就是使用strip_tags函数,但是还有一些朋友会发现可以使用自定义函数过滤掉,下面整理了一些方法.

将HTML转换为纯文本:有时候可能需要将HTML文本转换为纯文本,可以使用strip_tags()函数达到这个目的,该函数删除字符串中的所有HTML和PHP标记,只剩下文本实体,其形式为:

string strip_tags(string str[,string allowable_tags])

可选的参数allowable_tags指定在此过程中可以跳过的标记,下面的例子使用了strip_tags()删除字符串中的所以HTML标记,代码如下:

  1. $input = "Email example@example.com"
  2. echo strip_tags($input); 

这回返回以下结果:Email example@example.com

下面的例子删除<a>标记之外的所有标记:

  1. $input = "This example 
  2. is yanshare!"; 
  3. echo strip_tags($input""); 
  4. //返回结果如下: 
  5. This example 
  6. is yanshare! 

PHP版将html中的<br />换行符转换为文本框中的换行符,代码如下:

  1. function br2nl($text){ 
  2. return preg_replace('/<br\\s*?\/??>/i','',$text); 
  3. //或者: 
  4. function br2nl($text){ 
  5. $text=preg_replace('/<br\\s*?\/??>/i',chr(13),$text); 
  6.  return preg_replace('/ /i',' ',$text); 

代码如下:

  1. <?php 
  2. // $document 应包含一个 HTML 文档。 
  3. // 本例将去掉 HTML 标记,javascript 代码 
  4. // 和空白字符。还会将一些通用的 
  5. // HTML 实体转换成相应的文本。 
  6.  
  7. $search = array ("'<script[^>]*?>.*?</script>'si"// 去掉 javascript 
  8. "'<[/!]*?[^<>]*?>'si"// 去掉 HTML 标记 
  9. "'([rn])[s]+'"// 去掉空白字符 
  10. "'&(quot|#34);'i"// 替换 HTML 实体 
  11. "'&(amp|#38);'i"
  12. "'&(lt|#60);'i"
  13. "'&(gt|#62);'i"
  14. "'&(nbsp|#160);'i"
  15. "'&(iexcl|#161);'i"
  16. "'&(cent|#162);'i"
  17. "'&(pound|#163);'i"
  18. "'&(copy|#169);'i"
  19. "'&#(d+);'e"); // 作为 PHP 代码运行 
  20. $replace = array (""
  21.  ""
  22.  "1"
  23.  """, 
  24.  "&"
  25.  "<"
  26.  ">"
  27.  " "
  28. chr(161), 
  29. chr(162), 
  30. chr(163), 
  31. chr(169), 
  32.  "chr(1)");  //开源软件:phpfensi.com 
  33. $text = preg_replace ($search$replace$document); 
  34. ?> 
  35. <?php 
  36. $mystr=<<<SATO 
  37. 此处省略几十行HTML代码^_^ 
  38. SATO; 
  39. $str=strip_tags($mystr); 
  40. //到这里就已经达到我的HTML转为TXT文本的目的了,哈哈,使用这个函数真方便 
  41. //下面是插件的一些切词等操作,这里就不多说了 
  42. ?> 

后来我从网上看到了一个使用PHP写的方法,使用这个方法也可以实现将HTML转为TXT文本,个人觉得也还蛮实用的,在这里分享一下,代码如下:

  1. function HtmlToText($str){ 
  2.   $str=preg_replace("/<sty(.*)\/style>|<scr(.*)\/script>|<!--(.*)-->/isU","",$str);//去除CSS样式、JS脚本、HTML注释 
  3.   $alltext="";//用于保存TXT文本的变量 
  4.   $start=1;//用于检测<左、>右标签的控制开关 
  5.   for($i=0;$i<strlen($str);$i++){//遍历经过处理后的字符串中的每一个字符 
  6.     if(($start==0)&&($str[$i]==">")){//如果检测到>右标签,则使用$start=1;开启截取功能 
  7.       $start=1; 
  8.     }else if($start==1){//截取功能 
  9.       if($str[$i]=="<"){//如果字符是<左标签,则使用<font color='red'>|</font>替换 
  10.         $start=0; 
  11.         $alltext.="<font color='red'>|</font>"
  12.       }else if(ord($str[$i])>31){//如果字符是ASCII大于31的有效字符,则将字符添加到$alltext变量中 
  13.         $alltext.=$str[$i]; 
  14.       } 
  15.     } 
  16. //下方是去除空格和一些特殊字符的操作 
  17. $alltext = str_replace(" "," ",$alltext); 
  18. $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext); 
  19. $alltext = preg_replace("/[ ]+/s"," ",$alltext); 
  20. return $alltext

使用上面这个方法也可以实现将简答的HTML代码转换为TXT文本.

Tags: HTML转换纯文本 HTML转换txt

分享到: