我在Centos机器上使用以下代码来获取URL响应:
<?php
ini_set('display_errors', 'On');
$homepage = file_get_contents('http://www.google.com/');
echo $homepage;
?>
它返回错误:
&#34;警告:file_get_contents(http://www.google.com/):无法打开流:第3行和第34行的testFGC.php连接超时;
我已查看php.ini
文件。一切都很好看。 iptables
和ip6tables
已关闭。
我尝试过使用curl
代替file_get_contents
,但这也不行。
但是bash命令行的正常卷曲工作得非常好(返回html内容)。
curl www.google.com
可能是什么原因?即使bash卷曲有效,防火墙规则也可以成为问题吗?谢谢。
答案 0 :(得分:0)
错误表明, file_get_contents
未收到来自主机www.google.com的回复
否则,您的代码非常适合获取主机内容,
<?php
ini_set('display_errors', 'On');
$homepage = file_get_contents('http://www.google.com/');
echo $homepage;
?>
答案 1 :(得分:0)
好像其实际上与你的服务器有问题,不是你的代码。但是,如果您说curl有效,则可以在代码中使用
$curl = curl_init('http://www.google.com');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($curl);
//html var will contain the html code
if (curl_error($curl)){
die(curl_error($curl));
}
// Check for HTTP Codes (if you want)
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
希望这会有所帮助。