如何在 PHP 中使用 file_get_contents 快速获取图像尺寸
获取大量远程图像的图像尺寸可能是一项耗时的任务,特别是使用 getimagesize。这是利用 file_get_contents 快速检索图像大小的另一种方法:
使用自定义 PHP 函数
以下 ranger() 函数从远程读取特定字节范围图像,启用快速尺寸提取:
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;
}
提取图像尺寸
获得图像数据后,您可以使用 imagecreatefromstring() 和内置图像分析函数确定其尺寸:
$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);
性能测量
使用此方法,获取图像尺寸的过程明显更快:
$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)";
测试结果
示例图像检索仅花费 0.20859 秒它的尺寸。事实证明,加载 32KB 的数据在这种方法中是有效的。通过应用此技术,您可以快速获取远程图像的图像大小,从而最大限度地减少 getimagesize 通常遇到的瓶颈。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3