PHP - file_get_contents无法打开流:连接已关闭?

时间:2015-06-17 11:22:05

标签: php file-get-contents

实施(网址是有效且正在运行的网址):

$html = file_get_contents($url);

我在php中编写一个爬虫程序,有时file_get_contents会返回以下错误:

  

无法打开流:已关闭连接

这并不总是发生,所以当它发生时,它会让我感到困惑。这会是我身边的错误还是我爬行的网站?无论哪种方式都是明智的,继续重试,直到错误没有发生或有更好的方式?

3 个答案:

答案 0 :(得分:1)

您需要为此

创建一个流
  

阅读stream_context_create

<?php
// Create a stream 
$opts = array(
                'http'=>array(
                 'method'=>"GET",
                'header'=>"Accept-language: en\r\n" .
                "Cookie: foo=bar\r\n"
             )
       );

 $context = stream_context_create($opts);

 // Open the file using the HTTP headers set above
  $file = file_get_contents($url, false, $context);
?>

答案 1 :(得分:1)

试试这种方式......

function url_get_contents ($Url) {
    if (!function_exists('curl_init')){ 
        die('CURL is not installed!');
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $Url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

答案 2 :(得分:0)

使用php CURL库http://php.net/manual/en/book.curl.php  为了更好地管理客户端请求,由于主机服务器上的安全限制,file_get_contents()函数失败