PHP getimagesize 无法处理外部链接
PHP getimagesize not working on external links
我的服务器在 运行ning getimagesize 远程 url 图像上有一些问题。
例如,如果我 运行 这段代码在我的本地服务器上工作正常并且 returns 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');
?>
但是,如果我 运行 在我的服务器上使用相同的代码,我将无法使其正常工作。你能帮助确定我应该要求启用哪些设置吗?
我认为可能涉及到以下几点:
- mod_security
- safe_mode
- allow_url_fopen
你能帮我确定正确的配置来解决这个问题吗?
非常感谢您。
您必须在 php.ini
文件中打开 allow_url_fopen
才能允许它访问非本地资源。
这个在getimagesize的官方文档中对filename
参数的说明中有规定
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;
SRC
我的服务器在 运行ning getimagesize 远程 url 图像上有一些问题。
例如,如果我 运行 这段代码在我的本地服务器上工作正常并且 returns 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');
?>
但是,如果我 运行 在我的服务器上使用相同的代码,我将无法使其正常工作。你能帮助确定我应该要求启用哪些设置吗?
我认为可能涉及到以下几点:
- mod_security
- safe_mode
- allow_url_fopen
你能帮我确定正确的配置来解决这个问题吗?
非常感谢您。
您必须在 php.ini
文件中打开 allow_url_fopen
才能允许它访问非本地资源。
这个在getimagesize的官方文档中对filename
参数的说明中有规定
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;
SRC