我正在使用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] =
进入前面:
$ tds [0] = FIRST TD
$ tds [1] = SECOND TD
$ tds [2] = THIRD TD
我原本以为我可以使用方括号获取$tds[1]
的内容,但似乎没有。 我如何通过索引获取它?
答案 0 :(得分:2)
尝试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]);
答案 1 :(得分:1)
在发布问题后找到答案。您需要使用eq(n)
:
echo '$tds[1] = ' . $tds->eq(1);
答案 2 :(得分:0)
尝试以下方法:
echo '$tds[1] = ' . $tds['1'];