PHP警告:file_get_contents

时间:2017-04-06 08:19:57

标签: php warnings file-get-contents

所以2天前我收到了这条消息:

  

PHP警告:file_get_contents(http://example.com):无法打开流:第30行/home/server/map/index.php中的连接超时

这就是我在第29和30行:

$url = 'http://www.angelaget.se/till-salu/';

$string = file_get_contents($url);

有趣的是,我可以在本地主机上看到外部内容。但是当我将它上传到服务器时。然后我只能看到index.php文件中包含的html + css。

我要做的是从外部网站(http://angelaget.se/till-salu/)获取所有可用对象,并将其发布在我的网站上。

我已经完成了其他几个页面。但是现在遇到了一些问题。

任何人都有任何关于我如何用PHP解决它的exemepl。 可能是一个完全不同的解决方案?

因为我的想法已经用完了......

1 个答案:

答案 0 :(得分:0)

您可以远程使用file_get_contents功能,但许多主机不允许这样做。如果必须使用file_get_contents方法,请尝试更改文件default_socket_timeout中PHP配置中的php.ini选项  或在您的代码插入之前:

ini_set('default_socket_timeout', 900); // 900 Seconds = 15 Minutes

这应该有助于连接超时。但我建议使用一些PHP框架或只使用CURL: Client URL Library

例如:

function get_data($url) {   
    $ch = curl_init();  
    $timeout = 900; // 900 Seconds = 15 Minutes 
    curl_setopt($ch, CURLOPT_URL, $url);    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);     
    $data = curl_exec($ch);     
    curl_close($ch);    
    return $data; 
}

用法:

$returned_content = get_data('http://www.angelaget.se/till-salu/');