首頁 php教程 php手册 PHP将HTML转换成文本一些方法总结

PHP将HTML转换成文本一些方法总结

May 25, 2016 pm 04:54 PM

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

最常用的使用php函数strip_tags

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

自定义函数

<?php
// $document 应包含一个 HTML 文档。
// 本例将去掉 HTML 标记,javascript 代码
// 和空白字符。还会将一些通用的
// HTML 实体转换成相应的文本。
$search = array ("&#39;<script[^>]*?>.*?</script>&#39;si",  // 去掉 javascript
                 "&#39;<[/!]*?[^<>]*?>&#39;si",           // 去掉 HTML 标记
                 "&#39;([rn])[s]+&#39;",                 // 去掉空白字符
                 "&#39;&(quot|#34);&#39;i",                 // 替换 HTML 实体
                 "&#39;&(amp|#38);&#39;i",
                 "&#39;&(lt|#60);&#39;i",
                 "&#39;&(gt|#62);&#39;i",
                 "&#39;&(nbsp|#160);&#39;i",
                 "&#39;&(iexcl|#161);&#39;i",
                 "&#39;&(cent|#162);&#39;i",
                 "&#39;&(pound|#163);&#39;i",
                 "&#39;&(copy|#169);&#39;i",
                 "&#39;&#(d+);&#39;e");                    // 作为 PHP 代码运行
$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);//去除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=&#39;red&#39;>|</font>替换
        $start=0;
        $alltext.="<font color=&#39;red&#39;>|</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文本。

例3

function html2text($str,$encode = &#39;GB2312&#39;)
{
  $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("/&nbsp/i", " ", $str);
  $str = preg_replace("/&/i", "&", $str);
  $str = preg_replace("/&amp/i", "&", $str);
  $str = preg_replace("/</i", "<", $str);
  $str = preg_replace("/&lt/i", "<", $str);
  $str = preg_replace("/&ldquo;/i", &#39;"&#39;, $str);
  $str = preg_replace("/&ldquo/i", &#39;"&#39;, $str);
     $str = preg_replace("/&lsquo;/i", "&#39;", $str);
     $str = preg_replace("/&lsquo/i", "&#39;", $str);
     $str = preg_replace("/&rsquo;/i", "&#39;", $str);
     $str = preg_replace("/&rsquo/i", "&#39;", $str);
  $str = preg_replace("/>/i", ">", $str);
  $str = preg_replace("/&gt/i", ">", $str);
  $str = preg_replace("/&rdquo;/i", &#39;"&#39;, $str);
  $str = preg_replace("/&rdquo/i", &#39;"&#39;, $str);
  $str = strip_tags($str);
  $str = html_entity_decode($str, ENT_QUOTES, $encode);
  $str = preg_replace("/&#.*?;/i", "", $str);
     
  return $str;
}
登入後複製


本文地址:

转载随意,但请附上文章地址:-)

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24