-1

サイトから価格を解析しようとしています。ソースからタイトルを取得することはできますが、価格をスクレイピングしようとすると通知が表示されます。注意: 未定義のオフセット: 1 コードは次のとおりです。

<?php

$file_string = file_get_contents('http://finance.google.com');

preg_match('/<title>(.*)<\/title>/i', $file_string, $title); 
$title_out = $title[1];

preg_match('~<span id="ref_658274_l">(.*)</span>~', $file_string, $price);
//error on the line below 
$price_out = $price[1];

?>

<?php echo "$title_out"; ?>
<?php echo "$price_out"; ?>
4

2 に答える 2

0

DOMDocumentを使用すると、HTML の解析がより成功する可能性があります

$doc = new DOMDocument();
$doc->loadHTML(file_get_contents('http://finance.google.com'));

$titleElems = $doc->getElementsByTagName('title');
if ($titleElems->length) {
  $title = $titleElems->item(0)->nodeValue;
}

$priceElem = $doc->getElementById('ref_658274_l');
if ($priceElem != null) {
  $price = $priceElem->nodeValue;
}
于 2012-11-22T18:37:27.440 に答える
0

正規表現が一致しません。結果を使用するときは、使用しているインデックス (この場合1は ) が の境界内にあることを常に検証する必要がありますarray

于 2012-11-22T18:40:27.953 に答える