Урок 16: Запись в текстовый файл
В предыдущем уроке мы научились читать из текстового файла. В этом уроке будем записывать в него.
Эти два метода очень похожи, но есть одно важное отличие: для записи необходимо наличие права на запись. Это значит, что должен размещаться в директории, в которой у вас есть необходимые права.
Если вы работаете локально на своём компьютере, то можете сами установить права: щёлкните правой мышью на папке и выберите "Свойства/Properties". На большинстве вэб-хостов обычно имеется только одна папка с правами записи. Часто она называется "cgi-bin", "log", "databases" и т. п. Если ваш вэб-хост допускает, можно устанавливать права самостоятельно. Обычно можно щёлкнуть правой мышью на папке в FTP-клиенте и выбрать "properties" или "permissions" ил что-то похожее. Скриншот ниже показывает, как это выглядит в FileZilla.
См. также страницы поддержки ваших вэб-хостов.
Обратите внимание, что именно текстовый файл должен находиться в папке с правами на запись, а не РНР-файл.
Открытие текстового файла для записи
Как и при чтении текстового файла, функция fopen используется при записи, но на этот раз режим устанавливается "w" (writing) или "a" (appending).
Разница между writing и appending в том, как размещается 'курсор' - в начале или в конце текстового файла.
В примерах этого урока используется пустой текстовый файл textfile.txt. Но вы можете создать свой собственный файл, если желаете.
Сначала попробуем открыть этот текстовый файл для записи:
<?php
// Открыть текстовый файл
$f = fopen("textfile.txt", "w");
// Закрыть текстовый файл
fclose($f);
?>
Пример 1: Запись строки в текстовый файл
Для записи строки мы должны использовать функцию fwrite:
<html>
<head>
<title>Запись в текстовый файл</title>
</head>
<body>
<?php
// Открыть текстовый файл
$f = fopen("textfile.txt", "w");
// Записать строку текста
fwrite($f, "PHP is fun!");
// Закрыть текстовый файл
fclose($f);
// Открыть файл для чтения и прочитать строку
$f = fopen("textfile.txt", "r");
echo fgets($f);
fclose($f);
?>
</body>
</html>
Отображение примера
Поскольку файл открыть для записи, строка добавляется в начало файла и перезаписывает существующую строку. Если мы открываем файл для appending, строка добавляется в низ файла, который увеличивается на одну строку всякий раз при записи.
Пример 2: Добавление блока текста в текстовый файл
Разумеется, можно также добавлять целый текстовый блок, а не одну строку:
<html>
<head>
<title>Запись в текстовый файл</title>
</head>
<body>
<?php
// Открыть текстовый файл
$f = fopen("textfile.txt", "w");
// Записать текст
fwrite($f, $_POST["textblock"]);
// Закрыть текстовый файл
fclose($f);
// Открыть файл для чтения и прочитать строку
$f = fopen("textfile.txt", "r");
// Читать текст
echo fgets($f);
fclose($f);
?>
</body>
</html>
Отображение примера
В следующих уроках мы разберём другой способ хранения данных: базы данных.
|