所以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。 可能是一个完全不同的解决方案?
因为我的想法已经用完了......
答案 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/');