file_get_contents возвращает false для существующего читаемого файла - PullRequest
0 голосов
/ 05 февраля 2011

Ну, я начинаю ненавидеть PHP.У меня есть файл, который отлично читается (is_readable возвращает true), имеет разрешение 777, обычно открывается fopen, но file_get_contents возвращает false.Код следующий:

<?php
error_reporting(-1);
$handle = fopen("tres.txt","w+");
try{
$cnt = file_get_contents("/var/www/tres.txt");
}
catch(Exception $err){ echo $err->getMessage(); }
if ($handle) echo "Allright!", "<br />";
if ($cnt) echo "Good";
if(is_readable("/var/www/tres.txt")) echo " Is";
?>

И хотя я включил все известные мне варианты сообщений об ошибках, никаких ошибок не обнаруживалось, и это меня бесило.Изменение пути к файлу "./tres.txt" из "tres.txt" также не имеет никакого эффекта.Где может лежать проблема?

PS Он работает на PHP5 и apache2.

Ответы [ 2 ]

6 голосов
/ 05 февраля 2011

fopen("tres.txt","w+"); усекает файл. Читать это сразу после этого не имеет смысла.

$cnt скорее всего не ложь, а пустая строка '', которая считается false в логическом контексте.

if ($cnt !== false) echo "Good";, вероятно, выдаст "Хорошо".

4 голосов
/ 05 февраля 2011

Вам не нужно использовать fopen при использовании file_get_contents.Удалить fopen.

...