首页 > 后端开发 > php教程 > 如何在 PHP 中加快图像大小检索:file_get_contents 是解决方案吗?

如何在 PHP 中加快图像大小检索:file_get_contents 是解决方案吗?

Linda Hamilton
发布: 2024-10-30 16:47:25
原创
1044 人浏览过

How to Speed Up Image Size Retrieval in PHP: Is file_get_contents the Solution?

如何在 PHP 中使用 file_get_contents 快速获取图像大小

获取大量远程图像的图像尺寸可能是一项耗时的任务,特别是使用 getimagesize。这是利用 file_get_contents 快速检索图像大小的另一种方法:

使用自定义 PHP 函数

以下 ranger() 函数从远程读取特定字节范围图像,实现快速尺寸提取:

<code class="php">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;
}</code>
登录后复制

提取图像尺寸

获得图像数据后,您可以使用 imagecreatefromstring() 确定其尺寸,并内置 -图像分析函数中:

<code class="php">$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);</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>
登录后复制

测试结果

示例图像仅花费 0.20859 秒即可检索其尺寸。事实证明,加载 32KB 的数据在这种方法中是有效的。通过应用此技术,您可以快速获取远程图像的图像大小,从而最大限度地减少 getimagesize 通常遇到的瓶颈。

以上是如何在 PHP 中加快图像大小检索:file_get_contents 是解决方案吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板