一尘不染

PHP中的超快速getimagesize

php

我正在尝试获取数百个远程图像的图像大小(图像尺寸,宽度和高度),getimagesize而且速度太慢。

我做了一些阅读,发现最快的方法是file_get_contents从图像中读取一定数量的字节并检查二进制数据的大小。

有人尝试过吗?我将如何检查不同的格式?有人看到过任何图书馆吗?


阅读 730

收藏
2020-05-26

共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数据对我有用。

2020-05-26