Этот вопрос задан много раз, но ни один из ответов, которые я нашел, не помог мне.php file_exists возвращает false, даже если файл существует на моем Linux
Я пытаюсь заставить php file_exists() работать. Единственный сценарий, когда он работает, - это когда php-файл находится в том же каталоге, что и файл для использования file_exist(), и только с использованием имени файла (т. Е. Исключая путь). Но это не последовательное поведение, см. Ниже. Информация
Som:
- safe_mode = выкл
- не симлинками для каталога 28
- нет пробелов в имени файла
- Все каталоги в/вар/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() печатает/вар/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, дал ему apache: apache 777 rigths. Изменен файл $ на «ul.txt» (т. Е. $ File = 'ul.txt';). Это работает, файл ul.txt найден.
getcwd() печатает то/вар/WWW/HTML/СМИК/загрузить/28
качестве другого теста я попытался найти другой файл, исключающий путь в директории «билет», файл не был распознан ,
Я стучал головой ...
Любые советы оценили.
Какую версию php вы используете? Вы пробовали его без схемы 'file: //'? – VolkerK
PHP 5.3, добавленный к моему сообщению. Я почти только пробовал без файла: // – Nicsoft