1

我的服务器在远程 url 图像上运行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');

?>

但是,如果我在我的服务器上运行相同的代码,我将无法使其正常工作。您能否帮助确定我应该要求启用哪些设置?

我认为其中一些可能涉及:

  1. mod_security
  2. 安全模式
  3. allow_url_fopen

你能帮我确定正确的配置来解决这个问题吗?

非常感谢您提前。

4

2 回答 2

6

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

于 2016-05-30T17:50:43.757 回答
3

您必须allow_url_fopenphp.ini文件中打开才能允许它访问非本地资源。

这个在getimagesize的官方文档中在参数说明中filename指定。

于 2016-05-30T17:44:09.190 回答