PHP - очень мощный язык программирования и такие действия, как запись каких-нибудь данных в файл не составит каких-либо трудностей.
Существует два самых распространенных функции php для записи данных в файл:
- fwrite()
- file_put_contents()
Каждая из этих функций имеет свои особенности, поэтому я сейчас разберу каждую из них по отдельности.
Функция fwrite для записи в файл
Чтобы начать работать с файлом необходимо создать его или открыть, передав результат переменной. Для этих целей используется функция fopen(), которая в качестве аргументов принимает два значения:
- Путь к файлу или название файла
- Режим работы с файлом
Выглядеть код будет следующим образом:
<?php $fp = fopen ("file.txt", "w+"); ?>
В данном примере переменной является $fp, в которую записывается результат работы функции fopen(). Функция имеет два аргумента. Первый это путь к файлу относительно текущей директории, второй аргумент указывает каким образом открыть или создать файл, в данном случае это w+, который обозначает: если существует файл с таким же названием, то открыть его, удалив все содержимое, а если такого файла не существует, то создать его. Подробнее про режимы работы с файлом вы можете прочитать в следующей статье.
Второй этап - это запись данных в файл функцией php fwrite(). Она принимает два аргумента, первым из которых является переменная результата работы функции fopen(), а второй это информация для записи (текст).
Пример:
<?php $fw = fwrite( $fp, " текст который надо записать в файл " ); ?>
Этот код php записывает текстовые данные в файл. Как всегда результат работы функции присваиваем переменной $fw. Это всегда полезно, так как мы можем проверить записались ли данные в файл. Проверка осуществляется таким образом:
<?php
$fw = fwrite( $fp, " текст который надо записать в файл " );
if ($fw) { echo " Данные добавлены "; }
else { echo " Данные не добавлены "; }
?>
Второй аргумент функции fopen(), является непосредственно текст для записи в файл, который не только может быть передан непосредственно внутри функции, но и переменной, в которой содержится текстовое значение.
Пример:
<?php
$text= " текст который надо записать в файл ";
$fw = fwrite( $fp, $text ); // записываем в файл
?>
Третий этап - это закрытие соединения с файлом с помощью функции fclose(). У нее единственный аргумент -это переменная, в которой записан результат работы функции fopen.
Полный php код для записи данных в конкретный файл:
<php
$fp = fopen ( "file.txt", "w+" ); // открытие файла
$fw = fwrite( $fp, " текст который надо записать в файл "); // запись в файл
fclose($fp); // закрытие соединения с файлом
?>
Функция file_put_contents для записи в файл
Функция file_put_contents появилась с 5 версией php, и с ее помощью осуществляется запись данных в файл всего лишь одной строчкой кода.
Пример:
<?php
file_put_contents( "file.txt ", " текст который надо записать в файл " );
?>
Функция возвращает кол-во записанных в файл байт или же FALSE в случае не удачи. Поэтому можно проверить конструкцией if записались ли данные в файл:
<?php
$filename = 'file.txt';
$text = " текст который надо записать в файл ";
if ( file_put_contents( $filename, $text ) ) { echo " Данные добавлены "; }
else { echo " Данные не добавлены "; }
?>
В продемонстрированных примерах мы полностью перезаписывали файл, очищая его предыдущее содержимое. Чтобы добавить данные в конец файла, используется флаг — FILE_APPEND.
Это будет выглядеть так:
<?php
$filename = 'file.txt';
$text = " текст который надо записать в файл ";
file_put_contents( $filename, $text, FILE_APPEND );
?>
Функция file_put_contents() идентична последовательному вызову функций fopen(), fwrite() и fclose(), но она не дает полного контроля над операциями чтения/записи и медленнее работает с большим количеством данных чем функция fwrite().
Вы разработчик? Заходите в группу о веб-программировании.