0

我有一个 php 文件,用于检查图像是否可用。如果是,则将图像返回给用户,否则将创建图像然后返回给用户。

if(file_exists($filepath)) {
    $fp = fopen($filepath, 'rb'); # stream the image directly from the cachefile
    fpassthru($fp);
    exit;
} 

我想为了优化这一点,我可以跳过“file_exists”调用并尝试“fopen”它,如果返回“false”我创建图像,否则我直接返回它(正确吗?)。

我想知道的是,这是在 PHP 中加载图像的最快方法吗?在此之前我使用imagepng($image)但读到 fpassthru 更快: http ://www.php.net/manual/en/function.imagepng.php#103787

4

1 回答 1

1

最快的方法是首先不通过 PHP 处理图像。使用反向代理服务器,它为现有文件提供服务,对于每个不存在的文件,它调用的是 PHP 脚本。

接下来,删除对 file_exists() 的调用是微优化;但是,如果文件不存在,PHP 将触发警告,将其写入日志,根据设置输出...就 CPU 而言,这比 file_exists 调用更昂贵。

于 2012-01-26T11:00:21.840 回答