我正在尝试获取数百个远程图像的图像大小(图像尺寸,宽度和高度),getimagesize而且速度太慢。
getimagesize
我做了一些阅读,发现最快的方法是file_get_contents从图像中读取一定数量的字节并检查二进制数据的大小。
file_get_contents
有人尝试过吗?我将如何检查不同的格式?有人看到过任何图书馆吗?
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数据对我有用。