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] = 2 番目の TD

$tds[2] = 3 番目の TD

$tds[1]角かっこを使用して内容を取得できると期待していましたが、そうではないようです。インデックスで取得するにはどうすればよいですか?

4

3 に答える 3

2

を試してみてくださいvar_dump($tds)。tds の内容が正確にわかります。おそらく、これらのキーは実際には文字列であり、次を使用する必要があります。

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

編集: また、pq() を使用している foreach では、おそらくこれを使用する必要があります

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

次のことを試してください。

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