2013-01-06 39 views
0

我在PHP中测试一些缓存代码文件:PHP的包括:只有在现有

if (is_readable($cachefile) && (time() - $cachetime 
    < filemtime($cachefile))) 
    { 
      include($cachefile); 
    […] 

它应该做的: 运行包括仅当$求CacheFile已经存在。如果不是,它应该继续进行,而不要试图包含$ cachefile。

它做什么: 它试图每次加载$ cachefile因此创建一个PHP警告,当它不存在。

我不知道如何解决它,因为我尝试了一切,通常会阻止excecuted包括。有人可以帮忙吗?
谢谢!

+0

使用'isset'函数,而不是is_readable – tnanoba

+0

http://php.net/is_readable:*'is_readable' - 告诉一个文件是否存在并且是可读的* - 这听起来像是你在别处做错了。 – hakre

+0

作为hakre已经写,有错误必须是其他地方 - 你检查错误的行号?这真的是文件和行失败的包括发生? –

回答

0

如果(file_exists( 'file.php')) 包括 'file.php';

+1

'is_readable()'是好的。你只是表明确实少了功能(但是同样的工作,但机会是有可能产生同样的效果)。 – hakre