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

php中文网
发布: 2016-06-23 14:09:48
原创
1874人浏览过


假设有这样一个HTML:


测试文字1

Voicv
Voicv

克隆你的声音,就像Ctrl+C, Ctrl+V一样

Voicv 165
查看详情 Voicv

立即学习前端免费学习笔记(深入)”;



测试文字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><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</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><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</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 
有更好的办法吗

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号