显示所有相同的元素 简单HTML DOM 解析器


Display all the same elements Simple HTML DOM Parser

我有一个问题,我正在使用简单的HTML DOM解析器解析IMDB网页,我的代码是下一个:

<?php
require('../simple_html_dom.php');
$url = 'http://www.imdb.com/search/name?gender=female';
$html = file_get_html($url);
foreach ($html->find('table.results tbody') as $div) {
    $extractname = $div->find('tr.detailed td.name a', 0);
    $extractimg = $div->find('tr.detailed td.image', 0);
    $name = $extractname->innertext;
    $img = $extractimg->innertext;
    echo $img, $name;
};
?>

这个脚本返回我:

链接到图像

好吧,所以我的问题是我不知道为什么我的脚本只返回一个元素,而不是所有元素。

谢谢!

你得到一个元素<tbody>因为它在该页面上只有一个。您可能希望获得每个 tr 行的结果

foreach ($html->find('table.results tbody tr') as $div) {}

我通常使用 XPATH 来做这样的事情,所以如果我错了,请原谅我。

对我来说,看起来 find() 得到一个数组,你应该像对 tbody 标签的$html查找一样循环$extractname,就像你对 tbody 标签的查找所做的那样,$extractimg也是如此。

所以对我来说 a) 你找到所有的 tbody 标签并循环它们 b) 在每个 tbody 中,你正在寻找其他元素,这些元素成为它们自己的数组。