2013-01-06 42 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