2009-06-04 2 views
1

Вот мой PHP код:Почему не работает файл_exists()?

[[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) 

, который говорит, что файл не существует, но на самом деле это делает:

[[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]# 

кажется, что это действительно цитата вопрос:

<?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]# 

теперь фиксируется с использованием следующего преобразователя:

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

Мне нужно для запуска exec(), который запускает команду bash, обе стороны не смогут работать таким образом. – omg

+0

Попробуйте файл_exists() в другом файле в другом месте, чтобы узнать, работает ли он. Если это сработает, ваша проблема будет недоступна. Если это не сработает, тогда проблема связана с командой, и мы можем работать над ней оттуда. Дай мне знать. –

+0

нет, это вопрос с цитатой, см. Мое обновление. – omg

0

Проверьте руководство по эксплуатации file_exists.

Примечания Этого раздел: «. Эта функция возвращает FALSE для файлов недоступна из-за ограничения безопасного режима Однако эти файлы может быть включен, если они находятся в safe_mode_include_dir»

Я предполагаю, что вы используете < PHP 6.0.0, и у вас есть safe_mode (он по умолчанию и находится на большинстве хостов). Если это так, вы не найдете файл, если он не включен в safe_mode_include_dir.

+0

похоже, что это не тот случай. – omg