2015-02-11 72 views
0

我得到一個相當奇怪的錯誤的file_get_contents未能打開流:沒有這樣的文件或目錄

file_get_contents('/var/www/site/config/../runtime/cookies/1a8dd816aafc1118dc5cbf7fd0263f20/cookie.txt'): failed to open stream: No such file or directory 

所以我改變了代碼:

if (file_exists($cookie_file)) { 
    echo file_get_contents($cookie_file); 
} else { 
    echo "$cookie_file does not exist\n"; 
} 

,並將其輸出:

/var/www/site/config/../runtime/cookies/1a8dd816aafc1118dc5cbf7fd0263f20/cookie.txt does not exist 

在命令行中如果我這樣做

cat /var/www/site/config/../runtime/cookies/1a8dd816aafc1118dc5cbf7fd0263f20/cookie.txt 

這貓文件就好了

權限是也沒關係:

ls -lrt /var/www/site/config/../runtime/cookies/1a8dd816aafc1118dc5cbf7fd0263f20/cookie.txt 
-rwxrwxrwx. 1 apache apache 391 Feb 11 16:27 /var/www/site/config/../runtime/cookies/1a8dd816aafc1118dc5cbf7fd0263f20/cookie.txt 

所以,是的,我搞糊塗了,爲什麼它不會讀取明顯存在的文件。

任何想法?

+0

文件可能沒有被讀取/寫入的權限。 – 2015-02-11 16:51:28

+0

它給你麻煩的'''。 – dan08 2015-02-11 16:51:42

+0

/var/www/site/config/../? /../是什麼? – 2015-02-11 16:54:21

回答

0

使用realpath將相對路徑展開爲絕對路徑。 ..configruntime之間的路徑表示它的相對值,而file_get_contents則要求絕對值。

相關問題