PHP - Файлы и ввод-вывод

В этой главе будут объяснены следующие функции, связанные с файлами:

  • Открытие файла
  • Чтение файла
  • Запись файла
  • Закрытие файла

Открытие и закрытие файлов

PHP fopen()функция используется для открытия файла. Для этого требуются два аргумента, указывающие сначала имя файла, а затем режим работы.

Режимы файлов можно указать как один из шести вариантов в этой таблице.

Старший Нет Режим и цель
1

r

Открывает файл только для чтения.

Помещает указатель файла в начало файла.

2

r+

Открывает файл для чтения и записи.

Помещает указатель файла в начало файла.

3

w

Открывает файл только для записи.

Помещает указатель файла в начало файла.

и обрезает файл до нулевой длины. Если файлов нет

существует, то он пытается создать файл.

4

w+

Открывает файл только для чтения и записи.

Помещает указатель файла в начало файла.

и обрезает файл до нулевой длины. Если файлов нет

существует, то он пытается создать файл.

5

a

Открывает файл только для записи.

Помещает указатель файла в конец файла.

Если файлов не существует, он пытается создать файл.

6

a+

Открывает файл только для чтения и записи.

Помещает указатель файла в конец файла.

Если файлов не существует, он пытается создать файл.

Если попытка открыть файл не удалась, то fopen возвращает значение false в противном случае он возвращает file pointer который используется для дальнейшего чтения или записи в этот файл.

После внесения изменений в открытый файл важно закрыть его кнопкой. fclose()функция. Вfclose() функция требует указателя файла в качестве аргумента, а затем возвращает true когда закрытие успешно или false если не получится.

Чтение файла

После открытия файла с помощью fopen() функция его можно прочитать с помощью функции, называемой fread(). Эта функция требует двух аргументов. Это должен быть указатель файла и длина файла, выраженная в байтах.

Длину файлов можно узнать с помощью filesize() функция, которая принимает имя файла в качестве аргумента и возвращает размер файла, выраженный в байтах.

Итак, вот шаги, необходимые для чтения файла с помощью PHP.

  • Откройте файл с помощью 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 pointerи строка данных, которые должны быть записаны. При желании можно включить третий целочисленный аргумент, чтобы указать длину записываемых данных. Если включен третий аргумент, запись остановится после достижения указанной длины.

В следующем примере создается новый текстовый файл, а затем в него записывается короткий текстовый заголовок. После закрытия этого файла его существование подтверждается с помощью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» .