我的服务器上在远程网址图片上运行 getimagesize 时遇到了一些问题。
例如,如果我在本地服务器上运行此代码,它可以正常工作并返回OK:
<?php
$file = 'http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg';
$pic_size = getimagesize($file);
if (empty($pic_size))
{
die('FALSE');
}
die('OK');
?>
但如果我在服务器上运行相同的代码,我就无法使其正常工作。你能帮忙确定我要求启用哪些设置吗?
我认为其中一些可能涉及:
你能帮我确定正确的配置来解决这个问题吗?
非常感谢你。
答案 0 :(得分:4)
您的问题与allow_url_fopen
关闭有关。在php.ini
上启用它,或使用curl
获取图片:
function getImg($url){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$url = "http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg";
$raw = getImg($url);
$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);
echo $width." x ".$height;
答案 1 :(得分:1)
您必须在allow_url_fopen
文件中启用php.ini
才能允许其访问非本地资源。
这在filename
参数说明中getimagesize的官方文档中有详细说明。