无法使用file_get_contents()加载特定的URL

时间:2016-02-05 21:46:05

标签: php curl

我在抓http://www.beautyinzone.net/

我使用简单的file_get_contents()来加载此网址。

它完全在我的localhost上工作。但是当我在我的实时服务器上传时,它不起作用。

Warning: file_get_contents(http://www.beautyinzone.net/): failed to open stream: Connection timed out in script.php on line 36 page

如果我打开其他网址,则可以正常使用。

URL

我也尝试过使用cURL,但显示空白页面,不返回任何内容。

我想到了一个想法,也许我被阻止了,但它应该不是说网站使用我的服务器。

哪些问题可能导致我无法加载该网址?

3 个答案:

答案 0 :(得分:1)

由于远程服务器正在推迟回复,因此您收到了http超时错误。这很正常。

TCP套接字已设置超时,当达到此超时时,将引发超时错误。通常,超时为30秒(默认情况下,使用 default_socket_timeout php.ini设置。)

也许你想自己设置(增加)自定义超时:

<?php

$http_context = stream_context_create(array(
    'http' => array(
        'timeout' => 60.0 # 60 seconds
    )
));
$url = 'http://www.beautyinzone.net';
$content = file_get_contents($url, false, $http_context);

通过cURL只需使用:

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); 

答案 1 :(得分:0)

试试这个cURL代码段

function retrieve_curl_info() {
     $ch = curl_init();
     curl_setopt_array($ch, array(
         CURLOPT_URL => 'http://www.beautyinzone.net/',
         CURLOPT_RETURNTRANSFER => true
     ));
     $output = curl_exec($ch);
     curl_close($ch);
     return $output
}

另外,请查看此thread

答案 2 :(得分:0)

它为我工作。 尝试通过以下代码获取错误

if (!$content = file_get_contents("http://www.beautyinzone.net/")) {
    $error = error_get_last();
    echo $error['message'];
} else {
    echo "working fine";
}