PHP getimagesize()无效

时间:2014-08-10 16:56:10

标签: php getimagesize

<?php
$URL="http://cor-forum.de/forum/images/smilies/zombie.png";
list($width, $height) = getimagesize($URL);

echo 'width: '.$width.'<br>
height: '.$height;
?>

这导致以下输出:

width:
height:

编辑,我收到以下警告:

  

警告:   和getimagesize(http://cor-forum.de/forum/images/smilies/zombie.png):   无法打开流:HTTP请求失败! HTTP / 1.1 403禁止进入   /home/webpages/lima-city/regnum-forum/html/DATEIEN/scheisstest.php on   第6行

- 如果我使用其他图片,如

,则会显示正确的值
$URL='http://getfavicon.appspot.com/http://google.com?defaulticon=1pxgif';

编辑: 我想在论坛中启用外部图片,但我想首先查看其大小。 那么,我该怎样做才能获得图像的大小,其服务器是&#34;阻止我&#34;?

编辑: allow_url_fopen设置为ON,是。

3 个答案:

答案 0 :(得分:6)

伪造HTTP referer字段似乎可以解决这个问题:

<?php
function getimgsize($url, $referer = '')
{
    $headers = array(
                    'Range: bytes=0-32768'
                    );

    /* Hint: you could extract the referer from the url */
    if (!empty($referer)) array_push($headers, 'Referer: '.$referer);

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);

    $image = imagecreatefromstring($data);

    $return = array(imagesx($image), imagesy($image));

    imagedestroy($image);

    return $return;
}

list($width, $heigth) = getimgsize('http://cor-forum.de/forum/images/smilies/zombie.png', 'http://cor-forum.de/forum/');

echo $width.' x '.$heigth;
?>

code

的来源

答案 1 :(得分:-1)

看起来您提到的网址存在问题,您可以尝试以下代码 我没有做过任何改变URL的事情,

URL = "http://forums.phpfreaks.com/uploads/profile/photo-thumb-68615.jpg";
list($width, $height) = getimagesize($URL);
echo 'width: ' . $width . '<br>height: ' . $height;

答案 2 :(得分:-2)

将PHP内存限制设置为最大256 Mb以修复它