私はスクラップでデータを取得しています。 データソースはテーブルであり、すべて(tr)のデータを取得する必要があります。DOM要素をループして配列として格納する方法は?
表有する3(TD):
- 表題
- 日付
- リンクここ
私が使用コードである:
$data = array();
$counter = 1;
$index = 0;
foreach($html->find('#middle table tr td') as $source){
$dont_include = array(
'<td>CONTAIN TEXT THAT I DONT WNAT TO INCLUDE IN HERE</td>'
);
if (!in_array($source->outertext, $dont_include)) {
// IF IT CONTAIN LINK THEN GET IT LINK
// THE SOURCE DATA FOR LINK IS SOMETHING LIKE
// <td><a href="">xx</a></td>
if(strstr($source->innertext, 'http://')){
$a = new SimpleXMLElement($source->innertext);
$the_link = (string) $a['href'][0];
$data[$index] = array('link' => $the_link);;
}else{
if ($counter==2) {
$data[$index] = array('title' => $source->innertext);
}else{
$data[$index] = array('date' => $source->innertext);
$counter = 0;
$index++;
}
}
}
$counter++;
}
print_r($data);
を問題: どうすればいいですか?この構造体を使用して配列内のこれらの値を格納します。ここ
Array (
[0] => Array (
[title] => ""
[date] => ""
[link] => ""
)
[1] => Array (
[title] => ""
[date] => ""
[link] => ""
)
...
)
アップデートは、ソース構造である:td
て
<!-- THIS IS THE SOURCE , AT THE TOP HERE CONTAIN TD THAT I DONT WANT -->
<td>title</td>
<td class="ac">date</td>
<td width="190"><a href="i need this link" target="_blank">filename , i dont need the file name</a>
</td>
<td>title</td>
<td class="ac">date</td>
<td width="190"><a href="i need this link" target="_blank">filename , i dont need the file name</a>
</td>
<td>title</td>
<td class="ac">date</td>
<td width="190"><a href="i need this link" target="_blank">filename , i dont need the file name</a>
</td>
<td>title</td>
<td class="ac">date</td>
<td width="190"><a href="i need this link" target="_blank">filename , i dont need the file name</a>
</td>
'title'、' date'、 'link'はあなたのtdデータですよね? –
'tr'に' td'または 'th'のいずれかが含まれている可能性があります –
問題を詳しく説明してください。 –