获取通知:未定义的偏移量错误:使用file_get_contents并爆炸时为1

时间:2016-06-28 08:28:08

标签: php

我试图找出一些使用PHP file_get_contents 函数从外部页面获取数据的事情。

这是我试图开始工作的PHP代码:

$url = 'http://www.controller.com/listings/aircraft/for-sale/list/category/3/jet-aircraft/manufacturer/cessna/model/citation-mustang';
$content = file_get_contents($url);
$first_step = explode('<div class="listing">',$content);
$second_step = explode("</div>",$first_step[1]);
echo $second_step[0];

这是一个简单的代码,用于获取带有类“列表”的div的内容以在页面上回显。出于某种原因,我一直得到

  

注意未定义的偏移量错误:1

并无法找到解决此问题的方法。当我关闭错误报告时,它只返回一个空页面。我已经读过它与空数组或其他东西有关,但不知道如何解决这个问题。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用DOMDocument获取逐个类的名称:

$url = 'http://www.controller.com/listings/aircraft/for-sale/list/category/3/jet-aircraft/manufacturer/cessna/model/citation-mustang';
$content = file_get_contents($url);
$doc = new DOMDocument();
if (!$doc->loadHTML($content)) {
    die ('error');
}
$a = new DOMXPath($doc);
$class = 'listing';
$divs = $a->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $class ')]");

// $divs contains every divs with "listing" in his class
// you can get content like that :

foreach ($divs as $div) {
    echo $div->nodeValue;
    // or
    echo $div->textContent;
}

来自stackoverflow的这个问题的更多信息:Get all elements by class name using DOMDocument