Изучаем PHP 7. №18. Работа с файлами.

PHP 7. Работа с файлами.

Работа с файлами — важный момент. Так как в них можно хранить данные, логи и т.д. Загружать файлы на сервер мы уже умеем. А теперь нужно научиться взаимодействовать с их содержимым.
Сам процесс работы с файлом разделяется на три этапа:
1. Открытие файла.
2. Работа над содержимым открытого файла.
3. Закрытие файла.

Чтобы потом не путаться, давайте разберемся за что отвечает каждая функция в нашем коде:
fopen(‘ссылка на файл’, ‘режим’) — открывает указанный файл.
fwrite(fopen(), ‘текст’) — записывает текст в файл.
fgets(fopen(), 4096) — читает строку из файла. Подробнее ТУТ.
fclose(fopen()) — закрывает указанный файл.
is_writable(‘ссылка на файл’) — пррверяет существует ли файл и доступен ли для записи.
is_readable() — Определяет существование файла и доступен ли он для чтения
feof() — Проверяет, достигнут ли конец файла
Полное руководство по всем функциям можно посмотреть тут: http://php.net/filesystem

У функции fopen() есть несколько режимов, с помощью которых и открываются файлы, вот их таблица:

Список возможных режимов для fopen()
режим Описание
‘r’ Открывает файл только для чтения; помещает указатель в начало файла.
‘r+’ Открывает файл для чтения и записи; помещает указатель в начало файла.
‘w’ Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует — пробует его создать.
‘w+’ Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует — пытается его создать.
‘a’ Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует — пытается его создать. В данном режиме функция fseek() не применима, записи всегда добавляются.
‘a+’ Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует — пытается его создать. В данном режиме функция fseek() влияет только на место чтения, записи всегда добавляются.
‘x’ Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст ошибку уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2).
‘x+’ Создаёт и открывает для чтения и записи; в остальном имеет то же поведение что и‘x’.
‘c’ Открывает файл только для записи. Если файл не существует, то он создается. Если же файл существует, то он не обрезается (в отличии от ‘w’), и вызов к этой функции не вызывает ошибку (также как и в случае с ‘x’). Указатель на файл будет установлен на начало файла. Это может быть полезно при желании заблокировать файл (смотри flock()) перед изменением, так как использование ‘w’ может обрезать файл еще до того как была получена блокировка (если вы желаете обрезать файл, можно использовать функцию ftruncate() после запроса на блокировку).
‘c+’ Открывает файл для чтения и записи; в остальном имеет то же поведение, что и ‘c’.

К режиму можно добавить еще два значения:
b — файл открывается в бинарном режиме
t — файл открывается как текст

От слов к делу. Теперь немного практики для закрепления. Создадим в нашей папке files файл под названием test.txt, но сделаем это с помощью PHP. И запишем в него строку «Всем привет!», после чего считаем эту строку с файла и выведем на экран. Я решил все сделать в виде функций, для многоразового пользования, вот что из этого вышло:

<meta charset="utf-8">
<?php 

function fcreate($filename,$string){
  //путь к файлу
  $path = 'files/'.$filename.'.txt';

  //создаем файл и открываем его для записи
  $file = fopen($path,'w');

  //Записываем строку в файл
  $write = fwrite($file, $string);

  // проверяем успешность выполнения операции
  if($write) echo "Данные успешно записаны!<br>";
  else echo "Не удалось записать данные!<br>";

  //закрываем файл
  fclose($file);
}



function fileread($filename){
  //путь к файлу
  $path = 'files/'.$filename.'.txt';

  //открываем файл для чтения
  $file = fopen($path,'r');

  // если файл успешно открылся
  if($file){

    // тогда пока файл не достигнет конца
    while (!feof($file)) {

      // считываем данные с файла
      $read = fgets($file);

      // и выводим текст на экран
      echo $read.'<br>';
    }
  }
  // если файл не открылся, то сообщаем об этом
  else echo "Ошибка при открытии файла<br>";

  // Закрываем файл
  fclose($file);
}

//Создаем файл
fcreate('test','Всем привет!');

//Считываем данные из файла
fileread('test');

?>

Теперь вы можете создавать и редактировать файлы.
————————
А что ты знаешь о самых мощных суперкомпьютерах? Ничего? Тогда почитай тут http://tmginfo.net/2016/11/8g/ подробно о них. Естественно, что картинки присутствуют.

Введи свой e-mail:

One thought on “Изучаем PHP 7. №18. Работа с файлами.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *