Меню Закрыть

Создание текстового файла php

Здесь же рассмотрим возможные варианты параметра mode функии fopen

‘r’ — Открыть только для чтения; поместить указатель в начало файла.

‘r+’ — Открыть для чтения и записи; поместить указатель в начало файла.

‘w’ — Открыть только для записи; поместить указатель в начало файла и усечь файл до нулевой длины. Если файл не существует, делается попытка создать его.

‘w+’ — Открыть для чтения и записи; поместить указатель в начало файла и усечь файл до нулевой длины. Если файл не существует, делается попытка создать его.

‘a’ — Открыть только для записи; поместить указатель в конец файла. Если файл не существует, делается попытка создать его.

‘a+’ — Открыть для чтения и записи; поместить указатель в конец файла. Если файл не существует, делается попытка создать его.

Автор: Мухаметшин Д.Ф

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

Работа с файлами разделяется на 3 этапа:

  1. Открытие файла.
  2. Манипуляции с данными.
  3. Закрытие файла.

I. Открытие файла

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

$fp = fopen(‘counter.txt’, ‘r’);

Согласно документации PHP выделяют следующие виды режимов файлов:

  1. r – открытие файла только для чтения.
  2. r+ — открытие файла одновременно на чтение и запись.
  3. w – создание нового пустого файла. Если на момент вызова уже существует такой файл, то он уничтожается.
  4. w+ — аналогичен r+, только если на момент вызова фай такой существует, его содержимое удаляется.
  5. a – открывает существующий файл в режиме записи, при этом указатель сдвигается на последний байт файла (на конец файла).
  6. a+ — открывает файл в режиме чтения и записи при этом указатель сдвигается на последний байт файла (на конец файла). Содержимое файла не удаляется.
Читайте также:  Cas это в химии

Примечание: в конце любой из строк может существовать еще один необязательный параметр: b или t . Если указан b , то файл открывается в режиме бинарного чтения/записи. Если же t , то для файла устанавливается режим трансляции перевода строки, т.е. он воспринимается как текстовый.

Для демонстрации рассмотрим следующий сценарий:

II. Манипуляции с данными файла

Записывать данные в файл при помощи PHP можно при помощи функции fwrite(). Это функция принимает 2 обязательных параметра и 1 необязательный. В качестве обязательных параметров выступает дескриптор файла и режим файла:

Для построчного считывания файла используют функцию fgets(). Функция принимает 2 обязательных параметра:

Примечание: В данном примере значение 999 определяет количество символов, которые будут считываться до тех пор, пока указатель не достигнет конца файла (EOF).

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

Также можно использовать функцию fpassthru() которая принимает 1 обязательный параметр. Перед использованием этой функции необходимо открыть файл в режиме чтения. По окончанию считывания файла функция автоматически закрывает файл(при этом дескриптор файла становиться недействительным).

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

Примечание: Не следует применять функцию file() к двоичным файлам (binary-safe), т.к. она не является безопасной в плане считывания двоичных файлов, если при этом, где-то встретиться символ конца файла (EOF), то она не гарантирует вам чтение всего двоичного файла.

Примечание: Работа с массивами подробно описывается здесь, авторы: Мухаметшин Д.Ф., Симдянов И.В.

В конце статьи, вы найдете хороший «сборник рецептов» по массивам, который дает решение многих проблем, с которыми ежедневно встречается веб-программист.

Читайте также:  Kyocera taskalfa 2200 добавьте тонер

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

III. Закрытие файла

Закрытие файла происходить с помощью функции fclose(), которая принимает 1 обязательный параметр.

Сборник рецептов

1) Нам необходимо проверить существует ли тот или иной файл. Для этого мы воспользуемся функцией file_exists().

Примечание: Функция file_exists не производит проверку файлов на удаленном веб-сервере. Для правильной работы функции, файл со скриптом должен находиться на том сервере, где и проверяемый файл.

2) Определяем размер файла с помощью функции filesize()

3) Создание временного файла с помощью функции tmpfile()

4) Вам необходимо определить количество строк в файле. Для этого используем функцию count()

5) Нам необходимо использовать механизм блокировки файла

6) Нам необходимо удалить определенную строку из файла

7) Определение типа файла. Используем функцию filetype(), которая принимает единственный параметр

После вызова строка может содержат одно из следующих значений:

  1. file – обычный файл
  2. dir – каталог
  3. ink – символическая ссылка
  4. fifo – fifo-канал
  5. block – блочно — ориентированное устройство
  6. char – символьно — ориентированное устройство
  7. unknown – неизвестный тип файла

8) Если вы хотите просмотреть все параметры файла, то следует воспользоваться функцией stat()

9) Нам необходимо очистить файл, используем функцию ftruncate()

10) Нам необходимо узнать дату последнего изменения файла, используем функцию filectime(). Функция возвращает значение времени в форме Unix timestamp.

Создать файл в PHP можно двумя способами. Функцией fopen() и функцией file_put_contents() . Функция file_put_contents() лучше использовать только в случае обычной записи/дозаписи текста в файл, в остальных случаях лучше использовать fopen() .

fopen()

Например нужно создать файл data.txt и записать в него текстовую информацию.

Читайте также:  Почему меня плохо слышно по телефону

В результате в файле data.txt будет следующая информация:

file_put_contents()

Функция int file_put_contents (string filename, mixed data [, int flags [, resource context]]) повторяет вызов функций fopen(), fwrite(), fclose().

Например нужно создать файл data2.txt и записать в него текстовую информацию.

В результате в файле data2.txt будет:

Если вы хотите этой функцией file_put_contents() записать информацию в уже существующий файл, при это сохранив информацию в нем, то в качестве третьего параметра нужно передать константу FILE_APPEND .

В результате в файле будет следующая информация:

Примечание

При создании файла убедитесь, что у папки, где будет создаваться файл, выставлены права доступа для создания файлов.

Рекомендуем к прочтению

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

Ваш адрес email не будет опубликован.