最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP将HTML转换成文本一些方法总结

    在php中html转换成文本提供了自带的函数strip_tags了,但有时此函数不够用,下面总结了一些用户自定的函数,各位可参考.

    最常用的使用php函数strip_tags,代码如下:

    1. <?php 
    2. $mystr=<<<SATO 
    3. 此处省略几十行HTML代码^_^ 
    4. SATO; 
    5. $str=strip_tags($mystr); 
    6. //到这里就已经达到我的HTML转为TXT文本的目的了,哈哈,使用这个函数真方便 
    7. //下面是插件的一些切词等操作,这里就不多说了 
    8. ?> 

    自定义函数,代码如下:

    1. <?php 
    2. // $document 应包含一个 HTML 文档。 
    3. // 本例将去掉 HTML 标记,javascript 代码 
    4. // 和空白字符。还会将一些通用的 
    5. // HTML 实体转换成相应的文本。 
    6. $search = array ("'<script[^>]*?>.*?</script>'si",  // 去掉 javascript 
    7.                  "'<[/!]*?[^<>]*?>'si",           // 去掉 HTML 标记 
    8.                  "'([rn])[s]+'",                 // 去掉空白字符 
    9.                  "'&(quot|#34);'i",                 // 替换 HTML 实体 
    10.                  "'&(amp|#38);'i"
    11.                  "'&(lt|#60);'i"
    12.                  "'&(gt|#62);'i"
    13.                  "'&(nbsp|#160);'i"
    14.                  "'&(iexcl|#161);'i"
    15.                  "'&(cent|#162);'i"
    16.                  "'&(pound|#163);'i"
    17.                  "'&(copy|#169);'i"
    18.                  "'&#(d+);'e");                    // 作为 PHP 代码运行 
    19. $replace = array (""
    20.                   ""
    21.                   "1"
    22.                   """, 
    23.                   "&"
    24.                   "<"
    25.                   ">"
    26.                   " "
    27.                   chr(161), 
    28.                   chr(162), 
    29.                   chr(163), 
    30.                   chr(169), 
    31.                   "chr(1)"); 
    32. $text = preg_replace ($search$replace$document); 
    33. ?> 

    后来我从网上看到了一个使用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文本,实例代码如下:

    1. function html2text($str,$encode = 'GB2312'
    2.   $str = preg_replace("/<style .*?</style>/is"""$str); 
    3.   $str = preg_replace("/<script .*?</script>/is"""$str); 
    4.   $str = preg_replace("/<br s*/?/>/i""n"$str); 
    5.   $str = preg_replace("/</?p>/i""nn"$str); 
    6.   $str = preg_replace("/</?td>/i""n"$str); 
    7.   $str = preg_replace("/</?div>/i""n"$str); 
    8.   $str = preg_replace("/</?blockquote>/i""n"$str); 
    9.   $str = preg_replace("/</?li>/i""n"$str); 
    10.   $str = preg_replace("/&nbsp;/i"" "$str); 
    11.   $str = preg_replace("/&nbsp/i"" "$str); 
    12.   $str = preg_replace("/&amp;/i""&"$str); 
    13.   $str = preg_replace("/&amp/i""&"$str); 
    14.   $str = preg_replace("/&lt;/i""<"$str); 
    15.   $str = preg_replace("/&lt/i""<"$str); 
    16.   $str = preg_replace("/&ldquo;/i"'"'$str); 
    17.   $str = preg_replace("/&ldquo/i"'"'$str); 
    18.      $str = preg_replace("/&lsquo;/i""'"$str); 
    19.      $str = preg_replace("/&lsquo/i""'"$str); 
    20.      $str = preg_replace("/&rsquo;/i""'"$str); 
    21.      $str = preg_replace("/&rsquo/i""'"$str); 
    22.   $str = preg_replace("/&gt;/i"">"$str); 
    23.   $str = preg_replace("/&gt/i"">"$str); 
    24.   $str = preg_replace("/&rdquo;/i"'"'$str); 
    25.   $str = preg_replace("/&rdquo/i"'"'$str); 
    26.   $str = strip_tags($str); 
    27.   $str = html_entity_decode($str, ENT_QUOTES, $encode); 
    28.   $str = preg_replace("/&#.*?;/i"""$str); 
    29.       
    30.   return $str
    31. }
    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » PHP将HTML转换成文本一些方法总结

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级