這樣做:PHP file_exists是在騙我(說文件存在,但它不)
php -r 'unlink("path"); clearstatcache(); echo file_exists("path");'
其中path是我的Linux機器上的文件的完整絕對路徑。即使文件顯然不存在,命令也會返回'1
'。你可以運行這個命令一百萬次,它會一直告訴你這個文件在那裏。
運行:
ls path
告訴你有沒有這樣的文件。
是什麼給出的?
更新: 我知道關於clearstatcache()。這在這種情況下沒有幫助。另外,我用cli來運行它。從運行到運行沒有任何變化。我也在運行ubuntu 11.10的64位虛擬機上運行。
路徑只是文件系統上的路徑:/var/www/yo.txt。 www是一個nfs共享掛載,不確定是否與它有關。該文件已從遠程機器中刪除,但本地機器似乎知道它不在那裏。目錄上的'ls'不顯示任何文件,ls和path聲明表示文件不存在。該文件只是幾kb,沒什麼大的。
本文檔提到了有關32位系統上較大文件(> 2GB)的不穩定行爲的問題。這可能是你所看到的嗎? – Lix
*「什麼給?」* - 閱讀手冊*可能*幫助。 http://php.net/clearstatcache – hakre
@hakre,是否**你**繼續閱讀? 'unlink()'*自動清除緩存*。 –