файл не открывается с помощью PHP Fopen - PullRequest
8 голосов
/ 09 марта 2010

я пробовал это:

    <?php
$fileip = fopen("test.txt","r");

?>

это должно было открыть файл только для чтения, но это не так файл test.txt находится в той же папке, что и файл index.php (основная папка проекта)

файл не открывается

и когда я ставлю эхо, как:

echo $fileip;

вернул

Идентификатор ресурса # 3

Ответы [ 6 ]

15 голосов
/ 09 марта 2010

Файл открылся просто отлично, вы не можете повторить это так, потому что это указатель файла, а не содержимое самого файла. Вам нужно использовать 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;
3 голосов
/ 09 марта 2010

От php.net:

Возвращает ресурс указателя файла в случае успеха или FALSE в случае ошибки.

С resourceбыл возвращен, ваш файл успешно открыт, вам нужны дальнейшие операции, такие как fwrite и т. д. для вашего файла.Так что ошибки нет, файл существует для манипулирования .

2 голосов
/ 02 декабря 2011

Полный пример.

<?php
    $fileip = file_get_contents("test.txt");

    echo($fileip);
?>
2 голосов
/ 09 марта 2010

Вы открыли только дескриптор файла, а не сам файл.

Если вы используете PHP5 - которым вы действительно должны быть для новой разработки, вы можете вместо этого использовать $ fileip = file_get_contents ("test.txt"), который будет читать содержимое этого файла в буфер.

2 голосов
/ 09 марта 2010

Если вы получите идентификатор ресурса в результате вызова fopen, то он будет успешным, потому что он вернет FALSE в случае неудачи Так что же заставляет вас сомневаться в том, что файл действительно открыт?

Проверьте http://www.php.net/fopen для получения дополнительной информации.

0 голосов
/ 09 марта 2010

Для вывода содержимого текстового файла:

$fh   = fopen('myfile.txt', 'r');
$text = fread($fh, filesize('myfile.txt'));
echo $text;
...