Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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 简单HTMLDOM-在另一个元素之上查找一个元素_Php_Dom - Fatal编程技术网

Php 简单HTMLDOM-在另一个元素之上查找一个元素

Php 简单HTMLDOM-在另一个元素之上查找一个元素,php,dom,Php,Dom,我使用的是PHP简单DOM解析器() 到目前为止,我已经设法用它做了我想做的事情,但是我正在尝试获取第一个元素的一些文本,其中某个类位于另一个类之上 我的问题是div没有嵌套在我需要从中获取信息的区域中。像这样: <div class="day">Sunday<div> <div class="game">...</div> <div class="game">...</div> ... <div class="day

我使用的是PHP简单DOM解析器()

到目前为止,我已经设法用它做了我想做的事情,但是我正在尝试获取第一个元素的一些文本,其中某个类位于另一个类之上

我的问题是div没有嵌套在我需要从中获取信息的区域中。像这样:

<div class="day">Sunday<div>
<div class="game">...</div>
<div class="game">...</div>
...
<div class="day">Monday<div>
<div class="game">...</div>
<div class="game">...</div>
...
周日
...
...
...
星期一
...
...
...
每个游戏都有一个标题、时间和频道。。因此,当我将所有这些信息收集到阵列中时,我希望能够找到第一个
class=“day”
,以便将其添加到阵列中

$html->find('h2.time\u head')
是我目前获取日头的方式,但我不确定如何将其与我的游戏相匹配,因为我将它们
foreach($html->find('div.blockfix')作为$div)
这样


非常感谢您的帮助。

如果上述HTML示例是
的内容,您可以通过以下方式检索相应的日期:

foreach($html->find('div.blockfix')作为$block)
{
foreach($block->find('div.game')作为$div)
{
$day=$div;
而($day=$day->prev_sibling())
{
如果($day->class=='day')休息;
}
如果($day)回显$day->;
否则回声“找不到一天”;
}
}
我将您的基本
foreach
留给您,因为我不知道您是否需要做其他工作,但如果您愿意,您可以执行一个独特的foreach:

foreach( $html->find('div.blockfix div.game') as $div )

代码的核心是使用
->prev_sibling()
:我们检查当前“游戏”
的每个先前的兄弟,直到找到“day”类。

你能做一些类似
$div->find…
的事情吗?我已经在使用类似的东西了,但是在游戏开始之前我需要一个div。@JakeEvans你想为每个
安排一天吗?@fusion3k是的,没错。好吧,我现在总是第一个约会。我要去工作了,但这是我的代码站点,我正在从它那里发邮件。谢谢你的帮助@JakeEvans你的pastebin不再可用,在html源代码中我找不到任何游戏classI已修复我的问题,结果发现其他div的类与第一个不同。谢谢你的帮助。