0

1 つの Web ページ (所有していないページ) からデータを取得し、そのデータを操作しようとしています。これを行うには、配列に割り当てるか、MySQL DB などに書き込む必要があります。列 2、4、および 6 を保存して使用できるようにします。以下はこれまでの私のコードですが、データの操作方法については完全に迷っています。それは爆発と関係があると思いますが、それをうまく機能させることができませんでした:

<?php
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'URL');
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);

$content = curl_exec($ch);


$dom = new DOMDocument;
@$dom->loadHTML( $content );
//get all td
$items = $dom->getElementsByTagName('td'); 
//display all text
for ($i = 0; $i < $items->length; $i++)
echo $items->item($i)->nodeValue . "<br/>"; 

//below doesn't work
$cells = explode(" ", $dom->getElementsByTagName('td'));
echo $cells;    

?>
4

1 に答える 1

0

$dom->getElementsByTagName('td');DOMNodeListではなくデータ型を返すarrayため、これに対して を実行してexplodeも機能しないと思います。

tdところで、すでにを使用して をループしているときに、爆発して何をしようとしていますforか? 似たような内容のようです。

コード

<?php
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'URL');
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);

$content = curl_exec($ch);


$dom = new DOMDocument;
@$dom->loadHTML( $content );
//get all td
$items = $dom->getElementsByTagName('td'); 

// save the 2nd, 4th and 6th column values
$columnsToSave = array( 2, 4, 6 );
$outputArray = array();

for ( $i = 0; $i < $items->length; $i++ ) {
  $key = $i + 1;
  if( in_array( $key, $columnsToSave ) ) {
     $outputArray[ $key ] = $items->item($i)->nodeValue . "<br/>";
  }
}

print_r( $outputArray );
?>
于 2013-07-12T15:50:56.753 に答える