0

为了在编辑页面时清除缓存版本,我们用 PHP 编写的 CMS 使用 exec() 删除所有相关的缓存文件。这些文件总是被命名为包含字符串“_lid45”,例如,其中“45”是该页面的唯一标识符。

exec 字符串看起来像

rm ../cache/*_lid45[._]*

只要存在此类文件,它就可以完美运行。如果没有,则用户不会出现任何问题,但 Apache 错误日志会出现类似

rm: cannot remove `../cache/*_lid45[._]*': No such file or directory

我知道这不是最糟糕的事情!但是如果可以的话,我想尝试摆脱这些消息,而不会给原始脚本增加任何负载。例如,我想先使用 'ls' 来查看是否有任何此类文件,然后仅在它们存在时删除它们,但由于缓存的大小有时可能相当大,因此 'ls' 有时会减慢到一点它对整个服务器的性能有明显的影响!

有任何想法吗?

4

1 回答 1

2

只需将输出发送rm/dev/null

exec("rm ../cache/*_lid45['_]* > /dev/null 2>&1");

它将抑制所有输出,这应该抑制错误。

如果您对输出重定向不太了解/一无所知,您可能会发现值得一读...

于 2011-09-12T15:36:12.287 回答