如何在foreach循环上使用file_get_contents

时间:2015-05-10 10:43:52

标签: php web-crawler file-get-contents

我正在制作网络抓取工具,并希望获取特定网站的内容。这是迄今为止的代码。

<?php
include('libs/simplehtmldom/simple_html_dom.php');

libxml_use_internal_errors(true);
for ($x = 1; $x <= 1; $x++) {

    $pakwheels = file_get_contents('http://www.pakwheels.com/used-cars/search/-/?page=' . $x . '');

    $doc = new simple_html_dom();

    $doc->load($pakwheels);
    foreach($doc->find('a[class=car-name]') as $link)
    {
           $link->href = 'http://www.pakwheels.com' . $link->href;

            $details = file_get_contents($link);

            $pakfile = 'pakfile.txt';
            file_put_contents($pakfile , $details, FILE_APPEND);
    }   
}
?>

当我想使用file_get_contents时,它会向我显示警告,而内容不会存入文件中。任何解决方案都非常感谢。

enter image description here

当我回复这样的结果时:

<?php
include('libs/simplehtmldom/simple_html_dom.php');

libxml_use_internal_errors(true);
for ($x = 1; $x <= 1; $x++) {

    $pakwheels = file_get_contents('http://www.pakwheels.com/used-cars/search/-/?page=' . $x . '');

    $doc = new simple_html_dom();

    $doc->load($pakwheels);
    foreach($doc->find('a[class=car-name]') as $link)
    {
           $link->href = 'http://www.pakwheels.com' . $link->href;
            echo $link->outertext;

            //$details = file_get_contents($link);

            //$pakfile = 'pakfile.txt';
             //file_put_contents($pakfile , $details, FILE_APPEND);
    }   
}
?>

我得到了我想要的,

enter image description here

我想要实现的是file_get_contents来保存文件上的每个链接详细信息页面。

3 个答案:

答案 0 :(得分:2)

谢谢大家。我自己做了。

<?php

包括(&#39;库/ simplehtmldom / simple_html_dom.php&#39);

libxml_use_internal_errors(真); for($ x = 1; $ x&lt; = 1; $ x ++){

$pakwheels = file_get_contents('http://www.pakwheels.com/used-cars/search/-/?page=' . $x . '');

$doc = new simple_html_dom();

$doc->load($pakwheels);
foreach($doc->find('a[class=car-name]') as $link)
{
      // $link->href = 'http://www.pakwheels.com' . $link->href;

        $details = file_get_contents('http://www.pakwheels.com'.$link->href);

        $pakfile = 'pakfile.txt';
         file_put_contents($pakfile , $details, FILE_APPEND);
}   

} ?&GT;

答案 1 :(得分:0)

您不应将HTML标记传递给file_get_contents(),因此您的代码:

file_get_contents("<a href='http://example.com/file.php'></a<"); 

不行,你应该直接输入url-string:

file_get_contents("http://example.com/file.php"); 

答案 2 :(得分:0)

这里

  

$ detail = file_get_contents($ link);

更改为

  

$ detail = file_get_contents($ link-&gt; href);