Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 嵌套预匹配是否可能?_Php_Preg Match - Fatal编程技术网

Php 嵌套预匹配是否可能?

Php 嵌套预匹配是否可能?,php,preg-match,Php,Preg Match,我正在尝试学习如何使用php从页面中获取数据,我可以看到如何获取标签之间的所有内容,但是有没有一种方法可以获取标签中标签的内容 在下面的html中,我如何访问其中一个粗体跨距的内容,例如第二个跨距 <html> <div class="padding10"> <span class="bold"></span> <span class="bold"></span> <span class="bold"></

我正在尝试学习如何使用php从页面中获取数据,我可以看到如何获取标签之间的所有内容,但是有没有一种方法可以获取标签中标签的内容

在下面的html中,我如何访问其中一个粗体跨距的内容,例如第二个跨距

<html>
<div class="padding10">
<span class="bold"></span>
<span class="bold"></span>
<span class="bold"></span>
<span class="bold"></span>
</div>
</html>
我尝试了以下方法,这允许我获得padding10 div的内容,但我不知道如何进一步获得粗体跨距。我试过的一切都不管用

//gets all
$file_string = file_get_contents('http://www.test.com/index.html');

//gets all in padding10 div
preg_match('/<div class="padding10">(.*)<\/div>/si', $file_string, $padding_10);

//gets all bold spans on padding10 div??
preg_match_all('/<span class="bold">(.*)<\/span>/i', $padding_10[1], $spans_10);

我开始意识到,从我所读到的,这可能是一个错误的或低效的方式来进行这件事,但任何帮助将是巨大的。谢谢。

也许phpQuery能帮上忙

基于jqueryjavascript库的服务器端、可链接、CSS3选择器驱动的文档对象模型domapi。这将允许您从已解析的HTML文档中选择内容。这可能比手动执行正则表达式更适合HTML解析/遍历


也许phpQuery能帮上忙

基于jqueryjavascript库的服务器端、可链接、CSS3选择器驱动的文档对象模型domapi。这将允许您从已解析的HTML文档中选择内容。这可能比手动执行正则表达式更适合HTML解析/遍历


你试过了吗?

你试过了吗?

这应该让你开始:这应该让你开始:对不起,以前从来没有真正使用过php,它是否像下载和添加一样简单:require_once'phpQuery-onefile.php';抱歉,以前从未真正使用过php,它是否像下载和添加一样简单:require_once'phpQuery-onefile.php';这要简单得多。它对我很有用,如果有人发现它有用,代码是:foreach$html->find'div[class=padding10]'as$element;foreach$element->find'span[class=bold]'as$e echo$e->innertext;这要简单得多。它对我很有用,如果有人发现它有用,代码是:foreach$html->find'div[class=padding10]'as$element;foreach$element->find'span[class=bold]'as$e echo$e->innertext;