file_get_contents适用于除我的每个站点

时间:2015-04-07 14:48:34

标签: php stream file-get-contents

我的代码:

<?php
    $url = "http://www.myurl.com/";
    /*$opts = array(
        'http'=>array(
            'method'=>"GET",
            'header'=>"User-Agent: ".$_SERVER['HTTP_USER_AGENT']
        )
    );
    $context = stream_context_create($opts);*/
    $content = file_get_contents($url);
    echo $content;
?>

我收到以下错误:

Warning: file_get_contents(http://www.myurl.com/) [function.file-get-contents]: failed to open stream: Connection timed out in /home/content/myurl/contents.php on line 10

当我创建或不创建流上下文时,代码对我不起作用。 有趣的是,它可以在我尝试的任何其他网站上工作,除了我自己的。

PS:如果我使用或不使用“http”或“www”进行此操作无关紧要。

PSPS:allow_url_fopen为ON

PSPSPS:我在.htaccess中设置了以下内容:

<filesMatch "\\.(html|htm|php)$">
     Header set Cache-Control "max-age=1, private, must-revalidate"
     </filesMatch>

这可能是个问题吗?

4 个答案:

答案 0 :(得分:0)

你尝试过使用curl吗?

    function curl($url){
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
                curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
                $data = curl_exec($ch);
                curl_close($ch);
                return $data;
      }


      $url = 'http://www.myurl.com/';
      $contents = curl($url);

答案 1 :(得分:0)

尝试将最大执行时间设置为较大的时间段,可能已设置为较低。 ini_set('max_execution_time',60); // 1分钟

答案 2 :(得分:0)

您的服务器应该有防火墙,限制您连接到外部资源。所以检查防火墙。

答案 3 :(得分:0)

它应该在共享主机上运行,​​但如果它是您自己的服务器,则可能是服务器/ LAN上的网络或DNS问题阻止服务器将“www.myurl.com”解析为它自己的地址。 如果您不使用虚拟主机(在apache上)或等效机制,则可以使用“http://localhost/”代替