我正在尝试使用file_get_contents函数在屏幕上打印图片网址的内容:
<?php
$image2 = "http://www.example.com";
echo file_get_contents( $image2 );
?>
运行时,页面加载大约需要15-20秒,然后不显示任何内容。我也试图使用cURL,它给出了相同的结果。有人对如何解决这个问题有任何建议吗?
以下是我尝试的卷曲代码:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$contents=curl_exec($ch);
curl_close($ch);
echo $contents;
?>
运行时,页面会一直加载,直到服务器取消请求为止。
答案 0 :(得分:0)
file_get_contents
与许多PHP函数一样,如果失败则返回false。 false
is not echoed输出,这就是为什么你没有看到任何东西,就像回显了一个空字符串。
将结果存储在变量中,并与===
运算符一起检查以检查错误。
$file = file_get_contents($image2);
if ($file === false) {
// Check the error and handle as you like.
} else {
echo $image2;
}
不幸的是,这只是告诉你是否有错误,而不是错误。幸运的是,您也使用过cUrl
。还有curl_error
和curl_errno
,您可以使用它来更详细地描述错误本身。通常这会立即清理。
我对此表示怀疑:通常我会认为file_get_contents
的失败与allow-url-fopen的设置有关,但是现在,延迟20秒,以及cUrl显示相同的事实行为,表示您可能会超时。可能是您的防火墙不允许您执行此类请求。
答案 1 :(得分:0)
鉴于您提到您的脚本正在免费的主机服务器上运行。
大多数免费托管服务器都禁用了file_get_contents()函数。检查免费托管服务器的“帮助”部分,我非常有信心它会被禁用。