显示所有相同的元素 Simple HTML DOM Parser
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;
};
?>
这个脚本 returns 我认为:
嗯,所以我的问题是我不知道为什么我的脚本只有 returns 我的一个元素,而不是所有元素。
谢谢!
您得到一个元素因为<tbody>
在那个页面上只有一个。
您可能希望得到每个 tr 行的结果 。
foreach ($html->find('table.results tbody tr') as $div) {}
我通常使用XPATH做这样的事情,如果我错了,请原谅我。
对我来说,它看起来像 find() 得到一个数组,你应该将 $extractname 作为元素数组循环,就像你为 tbody 标签使用 $html find 一样,并且与 $extractimg.
相同
所以对我来说 a) 你找到所有的 tbody 标签并循环它们 b) 在每个 tbody 中你正在寻找其他元素成为他们自己的数组。
我有一个问题,我正在使用简单 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;
};
?>
这个脚本 returns 我认为:
嗯,所以我的问题是我不知道为什么我的脚本只有 returns 我的一个元素,而不是所有元素。
谢谢!
您得到一个元素因为<tbody>
在那个页面上只有一个。
您可能希望得到每个 tr 行的结果 。
foreach ($html->find('table.results tbody tr') as $div) {}
我通常使用XPATH做这样的事情,如果我错了,请原谅我。
对我来说,它看起来像 find() 得到一个数组,你应该将 $extractname 作为元素数组循环,就像你为 tbody 标签使用 $html find 一样,并且与 $extractimg.
相同所以对我来说 a) 你找到所有的 tbody 标签并循环它们 b) 在每个 tbody 中你正在寻找其他元素成为他们自己的数组。