-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 回答