php_cawler_html嵌套标签清洗

主要处理 嵌套 div,正则无法很好的处理清洗 
比如文本: 想要移除 class =quizPutTag 的div  ,内部可能嵌套的还有未知层级的div【前提是html文本段是闭合标签的】
这是<div>test<div class="quizPutTag">test</div><div class="quizPutTag">H<sub>2</sub>C<sub>2</sub>O<sub>4</sub>•2H<sub>2</sub>O<span dealflag="1" class="MathJye" mathtag="math" style="whiteSpace:nowrap;wordSpacing:normal;wordWrap:normal"><table cellpadding="-1" cellspacing="-1" style="margin-right:1px"><tbody><tr><td style="border-bottom:1px solid black;padding-bottom:1px;font-size:90%"><table style="margin-right: 1px" cellspacing="-1" cellpadding="-1"><tbody><tr><td>&nbsp;&nbsp;△&nbsp;&nbsp;</td></tr><tr><td style="font-size: 90%"><div style="border-top:1px solid black;line-height:1px">.</div></td></tr></tbody></table></td></tr><tr><td>&nbsp;</td></tr></tbody></table></span>CO↑+CO<sub>2</sub>↑+3H<sub>2</sub>O↑</div>保留的</div>
实现code
<?php
   include "./simple_html_dom.php";
   $output="";
   $input=fgets(fopen($argv[1],‘r‘));
   echo $input."\n\n";
   $html = new simple_html_dom();
   $html->load(‘<html><body>‘.$input.‘</body></html>‘);
   $divsq = $html->find(‘div.quizPutTag‘);
   $divsa = $html->find(‘div.sanwser‘);
   $output=str_replace($divsq,‘___‘,$input);
   $output=str_replace($divsa,‘‘,$output);
   echo $divs[0]."\n";
   echo $html."\n";
   $html->clear();
   echo $output."\n";

?>
simple_html_dom.php
时间: 2024-08-05 04:53:59

php_cawler_html嵌套标签清洗的相关文章

织梦channelartlist让嵌套标签里的channel也支持currentstyle高亮

嵌套标签 <div class="nav"> <ul> {dede:channelartlist row=7 typeid=top currentstyle=current} <li class="{dede:field.currentstyle/}"> <a href="{dede:field.typeurl/}">{dede:field.typename/}</a> <ul&g

phpcms模板解析嵌套标签解析失败

PHPCMS的模板解析函数是/phpcms/libs/classes/template_cache.class.php这个类中的template_parse函数. 我把这个文件拿出来,然后在下面直接写上 $str = '{php echo 1} -- {$abc}';$template = new template_cache();echo $c = $template->template_parse($str); 这时输出的是 <?php defined('IN_PHPCMS') or ex

简单扩展让beetl HTML标签支持父子嵌套

默认情况下,Beetl的html标签并不支持父子嵌套,就像类似jsp标签那样,父标签需要知道子标签的信息,子标签也需要知道父标签信息.但是beetl只需要简单扩展,就能完成嵌套标签支持. 首先看一个最终的使用效果,实现俩个html标签table.tag,tr.tag.可以在页面上这么用: <#table data ="${userList}"> <#tr class="3c" name="name"> 名称 </#t

HTML标签嵌套规则

摘要:  最近在整理项目时发现有些同事写的页面代码嵌套的太多,而且有些嵌套不对,比如<a><div>内容</div></a>.虽然功能实现了,但是对于浏览器渲染引擎的性能还是有些影响.所以就大体上的整理了下HTML标签的嵌套规则,也希望读者提出不对之处. 众所周知,HTML标签有两类: 块级元素div.h1~h6.address.blockquote.center.dir.dl.dt.dd.fieldset.form.hr.isindex.menu.nofr

Java/Js下使用正则表达式匹配嵌套Html标签

转自:http://www.jb51.net/article/24422.htm 以前写过一篇文章讲解如何使用正则表达式完美解决Html嵌套标签的匹配问题(使用正则表达式匹配嵌套Html标签),但是里头用到了平衡组这样的高级特性,貌似只有DotNet还有Perl正则引擎支持,因此通用性不高. 通用 HTML 标签区配正则 最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 HTML 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣.就拿回来改改,成了下面这样,可能会有一些 ca

web前端(6)—— 标签的属性,分类,嵌套

属性 HTML标签可以设置属性,属性一般以键值对的方式写在开始标签中 1.HTML标签除一些特定属性外可以设置自定义属性,一个标签可以设置多个属性用空格分隔,多个属性不区分先后顺序. 2.属性值要用引号包裹起来,通常使用双引号也可以单引号. 3.属性和属性值不区分大小写,但是推荐使用小写. 为什么html会有属性呢? 这个举个生活中的例子,你要在茫茫人海中找到你的女神,你依据什么来找呢?肯定依据她身上的某个特征来找对吧?这个特征换个词就是属性,她特有的属性,其他人没有的对吧?比如她今天穿的紫色长

struts2标签类别

要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif else 描述: 执行基本的条件流转. 参数: 例子: <s:set name="age" value="61"/> <s:if test="${age > 60}"&g

Struts标签库详解【1】

struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 boolean 决定标志里的内容是否显示的表达式 else标志没有这个参数 id 否 Object/String 用来标识元素的i

Struts标签库详解【3】

struts2标签库详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 boolean 决定标志里的内容是否显示的表达式 else标志没有这个参数 id 否 Object/String 用来标识元素的