php实现将HTML页面转换成词并且保存的方法

  

php实现将HTML页面转换成词并且保存的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

php将HTML转成词的方法:首先安装zip.dll压缩扩展,然后将规定好了的xml压缩成一个压缩包,最后把后缀名改成医生或者多克斯即可。

php实现将HTML页面转换成词并且保存的方法

这里用使用到一个php的工具叫:PHPWord。

生成词的原理是,将堆规定好了的xml压缩成一个压缩包,并且把后缀名改成医生或者多克斯即可。

所以使用PHPWord,需要你的php环境安装zip.dll压缩扩展,我写了一个演示。

功能说明:

20150507 - HTML中的& lt; p>标签和& lt; ol>列表标签的获取

20150508 -新增获取文章中的图片功能

20150509 -新增行间距,并且过滤一下错误图片

20150514 -新增表格处理,并且将代码改成面向对象

20150519 -新增GD库处理网络图片

require_once & # 39; PHPWord.php& # 39;;   require_once & # 39; SimpleHtmlDom.class.php& # 39;;   类单词{   私人$ url;   私人数组$ LinetextArr=();   公共CurrentDir美元;   公共数组$错误=();//错误数组   公共$ filename=零;   公共$ Allowtag=皃, ol, ul, table";/* *数据统计* */公共DownImg美元=0;   公共expendTime美元=0;   公共HttpRequestTime美元=0;   公共ContentLen美元=0;   公共数组$ HttpRequestArr=();   公共expendmemory美元=0;   公共函数__construct (url)美元   {   开始时间=这→美元_Time ();   startMemory=这→美元_memory ();   $ this→url=$ url;   $ UrlArr=parse_url ($ this→url);   $ this→主机=$ UrlArr干净自己的(“scheme")://啊C涝猆rlArr[& # 39;主机# 39;];   $ this→CurrentDir=getcwd ();   $ this→LinetextArr [“table"]=数组();   (html=new simple_html_dom美元这→url);   $ this→HttpRequestArr[]=$这→url;   $ this→HttpRequestTime + +;   foreach ($ html→找到($ this→Allowtag)美元关键=祝辞美元值)   {   如果美元价值→标签==皌able")   {   $ this→ParseTable($值,0,$ this→LinetextArr [“table"]);   }   其他的   {   $ this→AnalysisHtmlDom(美元值);   }   $ this→错误[]=error_get_last ();   }   endTime=这→美元_Time ();   endMemory=这→美元_memory ();   $ this→expendTime=圆((endTime -开始时间美元),2);//微秒   $ this→expendmemory=圆((endMemory - startMemory美元)/1000,2);//字节   $ this→CreateWordDom ();   }   私人_Time()函数   {   返回函数(爆炸(“;“()));   }   私人_memory()函数   {   返回memory_get_usage ();   }/* *   *解析HTML中的表,这里考虑到多层表嵌套的情况   * @param HTMLDOM美元价值   * @param $我遍历层级   * * */私有函数ParseTable (Arr)美元价值,我,美元   {   如果美元价值→写上(),,in_array(美元价值→写上()→标签,数组(“table",“tbody",“thead",“tfoot",“tr")))   {   foreach(美元价值→孩子k=美元在v)美元   {   $ this→ParseTable (v,我+ +,美元$ Arr);   }   }   其他的   {   foreach(美元价值→孩子k=美元在v)美元   {   如果(v→美元写上(),,v→美元写上()→标签!=皌able")   {   $ Arr [$ i][]=数组(“tag"=祝辞v→美元标签,“text"=祝辞修剪(v→美元明文));   }   如果(! $ v→写上())   {   $ Arr [$ i][]=数组(“tag"=祝辞v→美元标签,“text"=祝辞修剪(v→美元明文));   }   }   }   }/* *   *解析HTML里面的表情   * @param HTMLDOM美元价值   * * */私有函数AnalysisHtmlDom(美元值)   {   数组$ tmp=();   如果美元价值→has_child ())   {   foreach(美元价值→孩子k=美元在v)美元   {   $ this→AnalysisHtmlDom (v);   }   }   其他的   {   如果美元价值→标签==癮")   {   $ tmp=阵列(“tag"=祝辞美元价值→标签,“href"=祝辞美元价值→href、“text"=祝辞美元价值→innertext)实现;   }   else if($价值→标签==癷mg")   {   src=https://www.yisu.com/zixun/$ this -> unescape美元($值-> src);   美元$ UrlArr=parse_url (src);   如果(!收取($ UrlArr['主机']))   {   src=$ this ->主机。美元价值-> src;   美元$ UrlArr=parse_url (src);   }   $ src=$ this -> getImageFromNet (src, UrlArr美元);//表示有网络图片,需要下载   如果(src)美元   {   美元$ imgsArr=$ this -> GD (src);   $ tmp=阵列(“标签”=> $值->标签," src "=> src美元,“文本”-> alt=>美元价值,“宽度”=> imgsArr美元“宽度”,“高度”=> imgsArr美元['高']);}   }   其他的   {   $ tmp=阵列(“标签”=> $值->标签,“文本”=> strip_tags(美元值-> innertext)实现);   }   $ this -> LinetextArr []=$ tmp;   }   }/* *   *根据GD库来获取图片的如果太多,进行比例压缩   * * */供私人使用GD (src)美元   {   列表(宽度、高度,美元类型,美元attr)=getimagesize (src);   如果(宽度> 800美元| | $高度> 800)   {   宽度=宽/2美元;   身高=身高/2美元;   }   返回数组(宽度,美元“宽度”=>“高度”=>高美元);   }/* *   *将Uincode编码转移回原来的字符   * * */公共函数unescape (str) {   (str=rawurldecode美元str);   preg_match_all (“/(? % u。{4}) | & # x。{4}; | & # \ d +; |。+/u”, str美元$ r);   基于“增大化现实”技术=r美元[0];   foreach (ar k=>美元美元v) {   如果(substr (v,美元0,2)==% u) {   ar美元($ k)=iconv (“UCS-2BE”、“utf - 8”、包装(H4, substr (v美元,4)));   }   elseif (substr (v $ 0 3)==" & # x ") {   ar美元($ k)=iconv (“UCS-2BE”、“utf - 8”、包装(H4, substr (v $ 3, 1)));   }   elseif (substr (v,美元0,2)==& #){   ar美元($ k)=iconv (“UCS-2BE”、“utf - 8”、包装(“n”, substr (v $ 2 1)));   }   }   返回连接(“”,基于“增大化现实”技术的美元);   }/* *   *图片下载   * @param $ Src目标资源   * @param $ UrlArr目标URL对应的数组   * * */私有函数getImageFromNet (Src, UrlArr美元)   {   (文件=basename美元UrlArr[“路径”]);   $ ext=爆炸(“。”,美元文件);   $ this -> ImgDir=$ this -> CurrentDir。“/盪rlArr美元。['主机'];   $ _supportedImageTypes=阵列(jpg, jpeg、gif, png, bmp, tif, tiff);   如果收取(ext美元[1])& & in_array (ext [1] _supportedImageTypes美元))   {   美元$ file=file_get_contents (Src);   $ this -> HttpRequestArr []=$ Src;   $ this -> HttpRequestTime + +;   $ this -> _mkdir ();//创建目录,或者收集错误   (imgName=md5美元UrlArr[“路径”])。”。”。美元ext [1];   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

php实现将HTML页面转换成词并且保存的方法