2009-06-04 15 views
1

は、ここに私のPHPコードです:file_exists()が動作しないのはなぜですか?

<?php 


var_dump(file_exists('/usr/local/apache2/resumes/28/Chapel Hill/franky_li/CV.doc')); 
?> 
~ 
~ 
"test.php" 5L, 96C written 
[[email protected] htdocs]# php test.php 
bool(true) 
[[email protected] htdocs]# 

[[email protected] htdocs]# ls -l /usr/local/apache2/resumes/28/"Chapel Hill"/franky_li/"CV.doc" 
-rw-r--r-- 1 daemon root 36864 Oct 17 2008 /usr/local/apache2/resumes/28/Chapel Hill/franky_li/CV.doc 
[[email protected] htdocs]# 

が、それは確かに引用の問題だと思われる:ファイルが存在しませんが、実際にはそれがないと言う

[[email protected] htdocs]# vi test.php 
<?php 

var_dump(file_exists('/usr/local/apache2/resumes/28/"Chapel Hill"/franky_li/"CV.doc"')); 
?> 

"test.php" [New] 5L, 100C written 
[[email protected] htdocs]# php test.php 
bool(false) 

以下のコンバータを使用して修正しました:

preg_replace('/\/([^\/\s]+\s+[^\/]+)(?:\/|$)/','/"${1}"/',$file); 

bashで動作させるには!

+0

[PHPのfile_exists()は私のためには機能しませんか?](http://stackoverflow.com/questions/1287837/phps-file-exists-will-not-work-for-me) – razlebe

答えて

3

二重引用符がすでに一重引用符で囲まれているため、二重引用符を削除してください。

+0

私は必要ですbashコマンドを実行するexec()を実行するには、どちらの側もこのように動作しません。 – omg

+0

別の場所にある別のファイルでfile_exists()を試して、動作しているかどうかを確認してください。それがうまくいけば、あなたの問題はアクセス不可能です。それがうまくいかない場合、問題はコマンドであり、そこから作業することができます。お知らせ下さい。 –

+0

いいえ、それは引用符の問題です、私の更新を参照してください。 – omg

0

file_existsのマニュアルを確認してください。

注このセクション:「。この機能がセーフモードの制限のためにアクセスできないファイルのためにFALSEを返ししかしそれらはのsafe_mode_include_dirに配置されている場合は、まだ含めることができ、これらのファイル」

私は< PHP 6.0.0を使用していて、safe_modeをオンにしていると思います(デフォルトでは、ほとんどのホストにあります)。この場合、ファイルがsafe_mode_include_dirに含まれていないと、そのファイルは見つかりません。

+0

そうではないようです。 – omg

関連する問題