Чтение и запись файла в PHP

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

Чтение файла

Функция file_get_contents позволяет выполнять чтение файла. Параметром функция принимает имя файла, а своим результатом возвращает текст этого файла.

Давайте посмотрим на практике. Пусть у нас есть файл index.php, к которому мы обращаемся через браузер. Пусть также в этой же папке находится файл test.txt.

Давайте прочитаем текст текстового файла и выведем этот текст на экран:

<?php echo file_get_contents('test.txt'); ?>

Пусть у вас есть файлы 1.txt и 2.txt, в тексте которых записаны какие-то числа. Напишите скрипт, который выведет на экран сумму записанных в этих файлах чисел.

Запись файла

Давайте теперь научимся записывать данные в файлы. Для этого предназначена функция file_put_contents, которая первым параметром принимает путь к файлу, а вторым - текст, который мы хотим записать.

Для примера давайте запишем какой-нибудь текст в файл test.txt:

<?php file_put_contents('test.txt', '!'); ?>

Дан массив с числами. Найдите сумму этих чисел и результат запишите в файл sum.txt.

Комбинация операций

Чтение и запись файлов можно комбинировать. Давайте для примера прочитаем файл, добавим в конец его текста восклицательный знак и запишем текст обратно в этот файл:

$text = file_get_contents('test.txt'); file_put_contents('test.txt', $text . '!');

Пусть у вас есть файл, в котором записано некоторое число. Откройте этот файл, возведите число в квадрат и запишите обратно в файл.

Пусть в корне вашего сайта лежит файл count.txt. Изначально в нем записано число 0. Сделайте так, чтобы при обновлении страницы наш скрипт каждый раз увеличивал это число на 1. То есть у нас получится счетчик обновления страницы в виде файла.

Пусть в корне вашего сайта лежат файлы 1.txt, 2.txt и 3.txt. Вручную сделайте массив с именами этих файлов. Переберите его циклом, прочитайте содержимое каждого из файлов, слейте его в одну строку и запишите в новый файл new.txt. Изначально этого файла не должно быть.