В этой главе будут описаны следующие функции, связанные с файлами:
- Открытие файла
- Чтение файла
- Написание файла
- Закрытие файла
Открытие и закрытие файлов
Функция PHP fopen () используется для открытия файла. Требуется два аргумента, в которых указывается сначала имя файла, а затем режим работы.
Режимы файлов могут быть указаны в качестве одной из шести опций в этой таблице.
Sr.No | Режим и цель |
---|---|
1 |
р Открывает файл только для чтения. Размещает указатель файла в начале файла. |
2 |
г + Открывает файл для чтения и записи. Размещает указатель файла в начале файла. |
3 |
вес Открывает файл только для записи. Размещает указатель файла в начале файла. и обрезает файл до нулевой длины. Если файлы не существует, то пытается создать файл. |
4 |
ш + Открывает файл только для чтения и записи. Размещает указатель файла в начале файла. и обрезает файл до нулевой длины. Если файлы не существует, то пытается создать файл. |
5 |
Открывает файл только для записи. Размещает указатель файла в конце файла. Если файлы не существуют, он пытается создать файл. |
6 |
а + Открывает файл только для чтения и записи. Размещает указатель файла в конце файла. Если файлы не существуют, он пытается создать файл. |
р
Открывает файл только для чтения.
Размещает указатель файла в начале файла.
г +
Открывает файл для чтения и записи.
Размещает указатель файла в начале файла.
вес
Открывает файл только для записи.
Размещает указатель файла в начале файла.
и обрезает файл до нулевой длины. Если файлы не
существует, то пытается создать файл.
ш +
Открывает файл только для чтения и записи.
Размещает указатель файла в начале файла.
и обрезает файл до нулевой длины. Если файлы не
существует, то пытается создать файл.
Открывает файл только для записи.
Размещает указатель файла в конце файла.
Если файлы не существуют, он пытается создать файл.
а +
Открывает файл только для чтения и записи.
Размещает указатель файла в конце файла.
Если файлы не существуют, он пытается создать файл.
Если попытка открыть файл не удалась, fopen возвращает значение false, в противном случае возвращается указатель файла, который используется для дальнейшего чтения или записи в этот файл.
После внесения изменений в открытый файл важно закрыть его с помощью функции fclose () . Функция fclose () требует указатель файла в качестве аргумента, а затем возвращает true, если закрытие завершается успешно, или false, если происходит сбой.
Чтение файла
После открытия файла с помощью функции fopen () его можно прочитать с помощью функции fread () . Эта функция требует двух аргументов. Это должны быть указатель файла и длина файла, выраженная в байтах.
Длина файла может быть найдена с помощью функции filesize (), которая принимает имя файла в качестве аргумента и возвращает размер файла, выраженный в байтах.
Итак, вот шаги, необходимые для чтения файла с помощью PHP.
-
Откройте файл с помощью функции fopen () .
-
Получить длину файла с помощью функции filesize () .
-
Прочитайте содержимое файла с помощью функции fread () .
-
Закройте файл с помощью функции fclose () .
Откройте файл с помощью функции fopen () .
Получить длину файла с помощью функции filesize () .
Прочитайте содержимое файла с помощью функции fread () .
Закройте файл с помощью функции fclose () .
В следующем примере содержимое текстового файла присваивается переменной, а затем отображается на веб-странице.
<html> <head> <title>Reading a file using PHP</title> </head> <body> <?php $filename = "tmp.txt"; $file = fopen( $filename, "r" ); if( $file == false ) { echo ( "Error in opening file" ); exit(); } $filesize = filesize( $filename ); $filetext = fread( $file, $filesize ); fclose( $file ); echo ( "File size : $filesize bytes" ); echo ( "<pre>$filetext</pre>" ); ?> </body> </html>
Это даст следующий результат —
Написание файла
Новый файл может быть записан или текст может быть добавлен к существующему файлу с помощью функции PHP fwrite () . Эта функция требует двух аргументов, указывающих указатель файла и строку данных, которые должны быть записаны. При желании может быть включен третий целочисленный аргумент, чтобы указать длину данных для записи. Если третий аргумент включен, запись будет остановлена после достижения указанной длины.
В следующем примере создается новый текстовый файл, а затем записывается короткий текстовый заголовок внутри него. После закрытия этого файла его существование подтверждается с помощью функции file_exist (), которая принимает имя файла в качестве аргумента.
<?php $filename = "/home/user/guest/newfile.txt"; $file = fopen( $filename, "w" ); if( $file == false ) { echo ( "Error in opening new file" ); exit(); } fwrite( $file, "This is a simple test\n" ); fclose( $file ); ?> <html> <head> <title>Writing a file using PHP</title> </head> <body> <?php $filename = "newfile.txt"; $file = fopen( $filename, "r" ); if( $file == false ) { echo ( "Error in opening file" ); exit(); } $filesize = filesize( $filename ); $filetext = fread( $file, $filesize ); fclose( $file ); echo ( "File size : $filesize bytes" ); echo ( "$filetext" ); echo("file name: $filename"); ?> </body> </html>
Это даст следующий результат —
Мы рассмотрели все функции, связанные с вводом и выводом файлов, в главе « Функция файловой системы PHP» .