加速 PHP 中的 getimagesize 进行远程图像尺寸提取
对于大型图像集,使用 PHP 的 getimagesize 函数确定远程图像的尺寸可能会很缓慢。本文探讨了一种替代方法,利用 file_get_contents 从图像中检索部分二进制数据以进行大小分析。
要使用此方法提取图像尺寸,请实现以下函数:
<code class="php">function ranger($url) { $headers = ["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; }</code>
接下来,执行以下代码来检索远程图像的尺寸:
<code class="php">$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg"; $raw = ranger($url); $im = imagecreatefromstring($raw); $width = imagesx($im); $height = imagesy($im); echo $width." x ".$height." ({$stop}s)";</code>
在我们的测试用例中,此方法在 0.2 秒内生成远程图像的尺寸。
注意:调整范围参数(在“范围”标题中)以从图像中检索更多或更少的二进制数据。尝试不同的范围以优化您的特定应用的性能。
以上是如何使用 PHP 的 getimagesize 函数加速远程图像尺寸提取?的详细内容。更多信息请关注PHP中文网其他相关文章!