0

我正在使用 PHPQuery 从 HTML 中读取一些内容,我无法使用方括号表示法通过它的索引来获取元素。

看这个简单的例子:

$html = '<div><table id="theTable"><tr><td>FIRST TD</td><td>SECOND TD</td><td>THIRD TD</td></tr></table></div>';

$pq = phpQuery::newDocumentHTML($html);

$table = $pq->find('#theTable');
$tds = $table->find('td');

echo "GETTING BY INDEX:\n\n";
echo '$tds[1] = ' . $tds[1];

echo "\n\n\n";

echo "GETTING IN FOREACH:\n\n";
foreach($tds as $key => $td){
    echo '$tds[' . $key . '] = ' . pq($td) . "\n";
}

这个的输出是:

按索引获取:

$tds[1] =

进入 FOREACH:

$tds[0] = 第一个 TD

$tds[1] = 第二个 TD

$tds[2] = 第三个 TD

我本来希望我可以得到$tds[1]使用方括号的内容,但似乎没有。如何通过索引获取它?

4

3 回答 3

2

试试 a var_dump($tds),它会告诉你 tds 里面到底有什么。也许这些键实际上是字符串,您应该使用:

echo "GETTING BY INDEX:\n\n";
echo '$tds['1'] = ' . $tds['1'];

编辑:另外,在你的 foreach 上你正在使用 pq(),也许你应该使用这个

echo "GETTING BY INDEX:\n\n";
echo '$tds[1] = ' . pq($tds[1]);
于 2013-07-03T15:00:01.617 回答
1

在发布问题后找到答案。而不是方括号,您需要使用eq(n)

echo '$tds[1] = ' . $tds->eq(1);
于 2013-07-03T15:06:53.743 回答
0

尝试以下操作:

echo '$tds[1] = ' . $tds['1'];
于 2013-07-03T15:01:25.800 回答