2010-09-08 2 views
4

есть файл, который является для чтения и записи, но Еореп возвращает ложь ...PHP Еореп возвращает ложь, но файл доступен для чтения/записи

if(is_readable($file)) echo 'readable '; 
if(is_writable($file)) echo 'writable '; 
$fp = fopen($file, 'a+'); 
var_dump($fp); 

результат

readable writable bool(false) 

Любые идеи?

уверенный, что это должна быть вещь разрешений, но попытался 777 на файл с такими же результатами.

+1

Вы 1000% уверен, что это файл, а не каталог? Что означает 'error_reporting (E_ALL),' say? –

+4

1000% кажется немного излишним, P – Wrikken

+0

Установите отчет об ошибках в E_WARNING и посмотрите, что такое сообщение об ошибке. – jmz

ответ

16

Давайте попробуем получить дополнительную информацию.
Что

$file = 'p:\muh'; 

error_reporting(E_ALL); 
ini_set('display_errors', true); 
echo 'phpversion: ', phpversion(), "\n"; 
echo 'uname: ', php_uname("s r"), "\n"; // name/release of the operating system 
echo 'sapi: ', php_sapi(), "\n"; 

echo $file, file_exists($file) ? ' exists' : ' does not exist', "\n"; 
echo $file, is_readable($file) ? ' is readable' : ' is NOT readable', "\n"; 
echo $file, is_writable($file) ? ' is writable' : ' is NOT writable', "\n"; 

$fp = fopen($file, 'a+'); 
if (!$fp) { 
    echo 'last error: '; 
    var_dump(error_get_last()); 
} 
else { 
    echo "ok.\n"; 
} 

печать?

Смотри также: http://docs.php.net/error_get_last

+0

это был плагин, который обрабатывал ошибки - просто сообщив, что он не смог получить доступ к файлу - проблема была разрешена, так как владелец файла не разрешал php для chmod - и эта ошибка сжималась ... –

Смежные вопросы