Home >Backend Development >PHP Tutorial >如何获取HTML的嵌套闭合标签

如何获取HTML的嵌套闭合标签

WBOY
WBOYOriginal
2016-06-23 14:09:481704browse


假设有这样一个HTML:


测试文字1



测试文字2

测试文字3




测试文字4


例如我要获取到
和它对应的闭合标签
中间的所有内容,如何做?
谢谢!!!!


回复讨论(解决方案)

可以考虑jQuery,

<script type="text/javascript">jQuery(function(){var res = $(".test").html();return res;});</script>

可以考虑jQuery,

<script type="text/javascript">jQuery(function(){var res = $(".test").html();return res;});</script>


好办法啊,可惜我要的是PHP上能处理的方法。

不太明白你的意思,是不是要用PHP处理获取的结果?
如果这样的话,可以使用定界符

$html = 


测试文字1



测试文字2

测试文字3




测试文字4

EOT;
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//div[@class="test"]');
foreach($tags as $tag)
echo $tag->nodeValue;

你的HTML不完整,
有3个,不符合w3c标准。

很好,u010668220 做的不错!

$s =<<< HTML<div class='test'><p>测试文字1</p><div><span>测试文字2</span></div>测试文字3<br /><br />测试文字4</div>HTML;require('phpQuery/phpQuery.php');$doc = phpQuery::newDocument($s);echo $doc->find('.test')->html();

测试文字1



测试文字2

测试文字3



测试文字4

phpQuery 可以在网上下载
phpQuery 遵循 jquery 语法,除了 js 的事件处理外,就是一个 php 版的 jquery
会用jquery 就会用 phpQuery
唯一的缺点就是体积稍稍大了点

很好,u010668220 做的不错!

$s =<<< HTML<div class='test'><p>测试文字1</p><div><span>测试文字2</span></div>测试文字3<br /><br />测试文字4</div>HTML;require('phpQuery/phpQuery.php');$doc = phpQuery::newDocument($s);echo $doc->find('.test')->html();

测试文字1



测试文字2

测试文字3



测试文字4

哈哈,那个回答是 littlebo01 回复的,我是提问者!!
原来PHP也可以使用JQ,长见识了!!

方法真好!!我等下试试
在网上找到一种 方法是用正则的,类似这个
[\w]+)[^>]*\s[iI][dD]=(?["']?)footer(?(Quote)\k)[^>]*?(/>|>((?[^>]*>)|\k>(?)|.*?)*\k>)
但真心看不懂呀!!
思想就是先匹配最前面的起始标签,假设是div吧(

不用正则,要是也能按这种思维写出来效果就好了。

不太明白你的意思,是不是要用PHP处理获取的结果?
如果这样的话,可以使用定界符

就是使用PHP来获取这段数据,上面有人介绍了PHP的JQ,呵呵。。
不过希望有其它方法

mark 
有更好的办法吗

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn