700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 正则表达式 – PHP中 如何用正则提取指定的html容器

正则表达式 – PHP中 如何用正则提取指定的html容器

时间:2018-11-09 07:14:08

相关推荐

正则表达式 – PHP中 如何用正则提取指定的html容器

后端开发|php教程

php,正则表达式

后端开发-php教程

百度源码分享盘解压密码,vscode mac 调试,云端ubuntu,tomcat 访问应用,sqlite3+插入,jquery 日程插件,学前端只会用ui框架,鸟和爬虫谁更,php简单的mvc,东莞seo广告排名,农业展示网站源码,易语言网页带cookies,手机app宣传网页模板lzw

contont

ppppppp

android 自带程序源码,ubuntu网桥怎么用,tomcat 改变端口号,linux 脚本爬虫,php 爬虫503,关键词seo优化费用贵不贵lzw

my link

contont

ppppppp

3m平台源码,ubuntu怎么进去su,增量式爬虫项目,php textrank,黑猫seo团队lzw

my link

contont

ppppppp

my link

以上代码,我需要提取所有class为baby的容器内容,结构不一定是这样。也就是说,我需要提取某个容器的内容。

谢谢。

回复内容:

contont

ppppppp

my link

contont

ppppppp

my link

contont

ppppppp

my link

以上代码,我需要提取所有class为baby的容器内容,结构不一定是这样。也就是说,我需要提取某个容器的内容。

谢谢。

也不知道为什么大家都想用正则来提取 DOM 树 … 正则分明就不是用来做这个的 …

在想要这么做的时候 … 你看到正则满心的委屈了么 ..?

让千里马拉磨终归是不好 … 如果要提取 DOM 树 … 正确的方式如下 …

loadHTML( <<<HTML_SECTION

contont

ppppppp

my link

contont

ppppppp

my link

contont

ppppppp

my link

HTML_SECTION);/* make a result array ... */$result = [];/* go through all nodes which have ... */foreach( ( new DOMXPath( $doc ) )->query( //*[@class="baby"] )as $element ) /* just push it into the result ... */ $result[] = $doc->saveHTML( $element );/* and print the result out ... */print_r( $result );

关于 DOM 模块 的其他我在之前的 这个答案 里都写的很清楚 … 这里就不再赘述了 …

如果你有兴趣的话可以看看 …

至于标题的问题 … 对于 90% 以上的情况 … 答案都是 使用正则做不到 …

如果你特别坚持非要用正则不可 … 并且你要处理的文档和你例子中的一样 … 那有方法如下 …

<?php/* crying regex matcher ... */preg_match_all( (^(\s*).*^\\1)ism,<<<HTML_SECTION

contont

ppppppp

my link

contont

ppppppp

my link

contont

ppppppp

my link

HTML_SECTION, $result_tmp );/* only the first element we need ... */print_r( array_shift( $result_tmp ) );

这种方法仅限使用在良好格式化的 html 文档上 … 由缩进来判断标签的对应关系 …

如果是一个比较混乱的 html 文档 … 那么正则对于提取 DOM 这件事来说无能为力 …

恩恩 … 就是这样啦 …

尝试一下phpQuery吧,/p/phpquery/

介绍可以看看/in-loading/archive//04/11/2442697.html

$preg = /\

(.*?)\/s;preg_match_all($preg, $html, $match);

不知道这样可以么~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。