此問題已被多次詢問,但我找到的答案都沒有幫助我。即使文件存在於我的linux上,php file_exists也會返回false
我試圖讓PHP的file_exists()工作。當它工作時唯一的場景是當php文件與文件位於相同的目錄中,並且僅使用文件名(即不包括路徑)時使用file_exist()。但這不是隨之而來的行爲,請參閱下文。
索姆信息:
- 的safe_mode =關閉
- 沒有符號鏈接的目錄28
- 在文件名中沒有空格
- 在/ var中的所有目錄/ www/html等/中芯/上傳/ 28 /具有apache:apache 777作爲權限。
- 使用PHP 5.3
PHP:
echo getcwd()
clearstatcache();
$file = 'file:///var/www/html/smic/upload/28/ul.txt';
//Also tried like this
//$file = '/var/www/html/smic/upload/28/ul.txt';
if(file_exists($file)){
echo $file." exists";
}
GETCWD()打印在/ var/www/html等/中芯/模塊/核心/票務
的PHP腳本的權限並且要檢查的文件是apache:apache 777.
有關目錄結構的一些細節:
[[email protected] 28]# pwd
/var/www/html/smic/upload/28
[[email protected] 28]# ls -l ul.txt
-rw-r--r--. 1 apache apache 2 Feb 9 10:50 ul.txt
[[email protected] 28]# chmod 777 ul.txt
[[email protected] 28]# ls -l ul.txt
-rwxrwxrwx. 1 apache apache 2 Feb 9 10:50 ul.txt
的行爲並沒有改變文件的權限後更改。目錄/ 28有drwxr-xr-x。對於Apache用戶和Apache組
用於測試,我也感動了實際的PHP腳本/ 28,給了它阿帕奇:阿帕奇777 - 瑞。將$文件改爲「ul.txt」(即$ file ='ul.txt';)。這工作,找到ul.txt文件。
GETCWD()打印,然後在/ var/www/html等/中芯/上傳/ 28
至於另一項測試我試圖找到排除在「准考證」目錄的路徑,另一個文件,該文件是無法識別。
我砰的一聲......
任何意見是讚賞。
你使用哪個版本的php?你沒有使用'file://'方案試試嗎? – VolkerK 2012-02-09 14:00:32
PHP 5.3,已添加到我的文章。我幾乎只嘗試沒有文件:// – Nicsoft 2012-02-09 14:50:56