取消链接文件或检查文件是否存在更快?

时间:2014-05-23 23:46:36

标签: php file

我正在尝试优化我的网络应用程序,但我不知道在哪里可以获得有关使用unlink命令或file_exists命令之间的速度差异的良好信息。见这里:

@unlink(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".jpg");
@unlink(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".png");
@unlink(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".gif");

对战

if (file_exists(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".jpg"))
    @unlink(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".jpg");
if (file_exists(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".png"))
    @unlink(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".png");
if (file_exists(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".gif"))
    @unlink(graphics_url_root."/items/entry_img_".$_SESSION['userID'].".gif");

1 个答案:

答案 0 :(得分:2)

取消链接速度更快。它是一个系统调用而不是两个。并且内核中实现取消链接的代码必须首先测试文件是否存在,因此您只需复制该代码。

使用@unlink()的问题在于,您无法获得其他类型错误的通知,例如权限问题。因此,如果您使用file_exists()检查,则不应该禁止错误。