find('tr')[0]; の理由 テーブル行 1 の代わりにテーブル行 2 を取得しますか?
これは私のhtmlで、すべてのテーブルが同じクラスとレイアウトを持っています。
<table class="tablemenu">
<tbody>
<tr>
<td><b>hello</b></td>
<td><b>hi</b></td>
</tr>
<tr>
<td>hey</td>
<td>Alright</td>
<td>Good</td>
<td>Good</td>
<td><a>Date</a></td>
</tr>
</tbody>
</table>
<table class="tablemenu">
<tbody>
<tr>
<td><b>hello</b></td>
<td><b>hi</b></td>
</tr>
<tr>
<td>hey</td>
<td>Alright</td>
<td>Good</td>
<td>Good</td>
<td><a>Date</a></td>
</tr>
</tbody>
</table>
<table class="tablemenu">
<tbody>
<tr>
<td><b>hello</b></td>
<td><a>hi</a></td>
</tr>
<tr>
<td>hey</td>
<td>Alright</td>
<td>Good</td>
<td>Good</td>
<td><a>LINK</a></td>
</tr>
</tbody>
</table>
これは私のphpです
<?php
include("simpleHtmlDom/simple_html_dom.php");
$html = new simple_html_dom();
// Load a file
$html->load_file('http://mySite.net/');
foreach($html->find('table[class=tablemenu]') as $element){
$Link = $element->find('tr')[0]->find('td')[4]->find('a')[0];
echo($Link->text());
echo '<br />';
}
?>
最初は「日付」という単語を取得するために試しました
$Link = $element->find('tr')[1]->find('td')[4]->find('a')[0];
しかし、それは機能しませんでした。未定義のインデックスと表示されました。
それから私はこれをいじってみましたが、うまくいきます
$Link = $element->find('tr')[0]->find('td')[4]->find('a')[0];
これは、何らかの理由で Date という単語を取得します。理由がわかりません。それが必要ですが、機能しますが、テーブルの行 1 にアクセスできず、「こんにちは」という単語を取得できません。