使用HEAD方法验证给定的URL是否是有效的图像/大小

时间:2011-07-05 19:41:24

标签: php

如何使用HEAD方法检查URL以检查给定的URL是否为图像且不超过200x100像素?

2 个答案:

答案 0 :(得分:4)

这本质上是不可能的 HEAD方法不返回有关资源的内容的任何信息。

答案 1 :(得分:1)

您可以下载足够的数据(不是整个图像),然后检查......

function ranger($url){
    $headers = array(
    "Range: bytes=0-32768"
    );

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

$start = microtime(true);

$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

$width = imagesx($im);
$height = imagesy($im);

$stop = round(microtime(true) - $start, 5);

echo $width." x ".$height." ({$stop}s)";

...测试

640 x 480 (0.20859s)

加载32kb的数据对我有用。 (图像是90kb)