PHP - file_get_contents 无法打开流:连接已关闭?
PHP - file_get_contents failed to open stream: Connection closed?
实施(url有效且运行url):
$html = file_get_contents($url);
我在php编写爬虫,有时file_get_contentsreturns出现以下错误:
failed to open stream: Connection closed
这并不总是发生,所以当它发生时,我有点困惑。这是我这边的错误还是我正在抓取的网站?无论哪种方式,继续重试直到错误不发生或有更好的方法是明智的吗?
您需要为此创建一个流
<?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);
?>
使用php CURL 库http://php.net/manual/en/book.curl.php
为了更好地管理客户端请求。file_get_contents() 函数因主机服务器
的安全限制而失败
试试这个方法...
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;
}
实施(url有效且运行url):
$html = file_get_contents($url);
我在php编写爬虫,有时file_get_contentsreturns出现以下错误:
failed to open stream: Connection closed
这并不总是发生,所以当它发生时,我有点困惑。这是我这边的错误还是我正在抓取的网站?无论哪种方式,继续重试直到错误不发生或有更好的方法是明智的吗?
您需要为此创建一个流
<?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);
?>
使用php CURL 库http://php.net/manual/en/book.curl.php 为了更好地管理客户端请求。file_get_contents() 函数因主机服务器
的安全限制而失败试试这个方法...
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;
}