файл не открывается с помощью PHP fopen
Вопрос
я уже пробовал это:
<?php
$fileip = fopen("test.txt","r");
?>
это должно было открыть файл в режиме "только для чтения", но этого не происходит test.txt файл находится в той же папке, что и у index.php (основная папка проекта)
файл не открывается
и когда я ставлю echo, как :
echo $fileip;
оно вернулось
Идентификатор ресурса #3
Решение
Файл действительно открылся просто отлично, вы не можете повторить его таким образом, потому что это указатель на файл, а не содержимое самого файла.Вам нужно использовать fread()
чтобы ознакомиться с фактическим содержанием, а еще лучше, используйте file_get_contents()
вы получаете контент сразу же.
Делай это по-своему:
$handle = fopen("test.txt", "r");
$fileip = fread($handle, filesize($filename));
fclose($handle);
echo $fileip;
Или, используя file_get_contents()
:
$fileip = file_get_contents("test.txt");
echo $fileip;
Другие советы
Из php.net:
Возвращает указатель на ресурс файла при успешном выполнении или FALSE при ошибке.
С тех пор как resource
был возвращен, ваш файл успешно открылся, вам необходимы дальнейшие операции, такие как fwrite
, и т.д. в вашем файле.Таким образом, ошибки нет, файл должен быть там манипулируемый.
Если вы получаете идентификатор ресурса в результате вызова fopen, значит, это удалось, потому что в случае сбоя он вернет FALSE.Итак, что именно заставляет вас сомневаться в том, что файл действительно открыт?
Проверить http://www.php.net/fopen для получения дополнительной информации.
Вы открыли только дескриптор файла, а не сам файл.
Если вы используете PHP5 - что вам действительно нужно для новой разработки, вы могли бы вместо этого использовать $fileip = file_get_contents("test.txt"), который будет считывать содержимое этого файла в буфер.
Полный пример.
<?php
$fileip = file_get_contents("test.txt");
echo($fileip);
?>
Для вывода содержимого текстового файла:
$fh = fopen('myfile.txt', 'r');
$text = fread($fh, filesize('myfile.txt'));
echo $text;