首页  >  文章  >  后端开发  >  如何优化远程图像的 getimagesize 性能?

如何优化远程图像的 getimagesize 性能?

Susan Sarandon
Susan Sarandon原创
2024-10-29 08:06:30398浏览

How can I optimize getimagesize performance for remote images?

加速远程图像的 getimagesize 性能

Getimagesize 通常用于确定远程图像的尺寸。然而,在处理大量图像时,它可能会变得非常耗时。

更快的方法是使用 file_get_contents 获取一小部分图像数据并对其进行分析以检索大小。此方法避免了加载整个图像的开销。

以下是如何使用 ranger 函数实现此技术的示例:

<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">$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)";</code>

在测试中,获取前 32 KB 图像数据提供了令人印象深刻的性能提升:

640 x 480 (0.20859s)

这种方法显着减少了确定远程图像大小所需的时间,使其成为处理大型数据集的理想选择。

以上是如何优化远程图像的 getimagesize 性能?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn