我正在使用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]
的内容,但似乎不是如何通过索引获取
试试var_dump($tds)
,它会告诉你tds内部到底是什么。也许这些键实际上是字符串,你应该使用:
echo "GETTING BY INDEX:'n'n";
echo '$tds['1'] = ' . $tds['1'];
编辑:另外,在你的前臂上,你正在使用pq(),也许你应该使用这个
echo "GETTING BY INDEX:'n'n";
echo '$tds[1] = ' . pq($tds[1]);
发布问题后立即找到答案。您需要使用eq(n)
:而不是方括号
echo '$tds[1] = ' . $tds->eq(1);
尝试以下操作:
echo '$tds[1] = ' . $tds['1'];