この質問は何度も聞かれましたが、私が見つけた答えはどれも私を助けませんでした。
php file_exists()を機能させようとしています。それが機能する唯一のシナリオは、php-fileがファイルと同じディレクトリにあり、file_exist()を使用し、ファイル名のみを使用する場合です(つまり、パスを除く)。ただし、結果として生じる動作ではありません。以下を参照してください。
ソム情報:
- safe_mode = off
- ディレクトリ28のシンボリックリンクはありません
- ファイル名に空白がありません
- / var / www / html / smic / upload / 28 /内のすべてのディレクトリには、権限としてapache:apache777があります。
- php5.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 / smic / modules / core/ticketを出力します
php-scriptとチェックするファイルの権限はapache:apache777です。
ディレクトリ構造に関する詳細:
[root@localhost 28]# pwd
/var/www/html/smic/upload/28
[root@localhost 28]# ls -l ul.txt
-rw-r--r--. 1 apache apache 2 Feb 9 10:50 ul.txt
[root@localhost 28]# chmod 777 ul.txt
[root@localhost 28]# ls -l ul.txt
-rwxrwxrwx. 1 apache apache 2 Feb 9 10:50 ul.txt
ファイルのアクセス許可を変更しても、動作は変わりませんでした。ディレクトリ/28にはdrwxr-xr-xがあります。apacheユーザーおよびapacheグループの場合
テストのために、実際のphp-scriptも/ 28に移動し、apache:apache777rigthsを指定しました。$fileを"ul.txt"に変更しました(つまり、$ file ='ul.txt';)。これで、ul.txtファイルが見つかりました。
getcwd()は、/ var / www / html / smic / upload/28を出力します
別のテストとして、「ticket」ディレクトリ内のパスを除く別のファイルを見つけようとしましたが、ファイルが認識されませんでした。
私は頭を叩いています...
アドバイスをいただければ幸いです。