gpt4 book ai didi

php - PHP 中的 file_exist() 是一项非常昂贵的操作吗?

转载 作者:IT王子 更新时间:2023-10-29 00:16:43 25 4
gpt4 key购买 nike

我正在将头像添加到我正在设计的论坛引擎中,我正在考虑是否做一些简单的事情(论坛图像命名为 .png)并使用 PHP 在显示之前检查文件是否存在,或者做一些更复杂(但不多)的事情,并使用数据库字段包含要显示的图像的名称。

我个人更愿意使用 file_exists() 方法,因为这为我提供了一种简单的方法来回退到“默认”头像(如果当前头像不存在(尚不存在)),而且它易于实现代码明智。但是,我担心性能,因为这将在论坛阅读页面上的每个页面加载显示的每个用户运行一次。所以我想知道,PHP 中的 file_exists() 函数是否会导致任何重大的减速,从而在高流量条件下导致显着的性能下降?

如果没有,很好。如果是这样,您对跟踪用户上传图像的替代方案有何看法?谢谢!

PS:我看到的代码差异是文件检查版本让文件进行对话,而数据库表单则相信数据库是准确的并且不会费心去检查。 (当然,它只是一个传递给浏览器的 url。)

最佳答案

正如其他发帖者所说,file_exists() 的结果由 PHP 自动缓存以提高性能。

但是,如果您已经在从数据库中读取用户信息,您也可以将信息存储在那里。如果用户只允许一个头像,你可以只在“有头像”(1/0)的列中存储一个位,然后将文件名与用户 ID 相同,并使用类似 SELECT CONCAT(IF(has_avatar, id, 'default'), '.png') AS 头像来自用户

您还可以考虑将实际图像作为 BLOB 存储在数据库中。将它放在自己的表中,而不是将其作为列附加到用户表中。这样做的好处是它使您的论坛非常容易备份 - 您只需导出数据库即可。

关于php - PHP 中的 file_exist() 是一项非常昂贵的操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/316629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com