Запись в файлы
Этот раздел описывает, как использовать PHP для записи содержимого в файлы в системах Windows.
PHP содержит функцию fwrite() для записи файлов. Эта функция определена ниже.
fwrite(указатель_файла,строка) – записывает содержимое строки в поток указанного файла. Если задан аргумент length (длина), запись будет остановлена после записи length байтов или достижения конца строки.
Следующий пример иллюстрирует, как записать все содержимое файла:
filewrite.php
<?php
$filename = "C:/Documents and Settings/Administrator/MyFiles/myfile.txt";
$newfile = @fopen($filename, "w") or exit("Невозможно открыть файл");
$file_contents = "Добавьте эту строку в текстовый файл";
fwrite($newfile,$file_contents);
fclose($newfile);
?>
Первый шаг состоит в создании переменной для хранения полного пути доступа к файлу, который будет открыт или создан:
$filename = "C:/Documents and Settings/Administrators/MyFiles/myfile.txt";
Путь доступа к текстовому файлу myfile.txt хранится в переменной с именем filename. Затем создается указатель файла с именем $newfile и используется с функцией fopen() для открытия файла, указанного в предыдущем разделе. Указатель файла применяется для ссылки на только что открытый файл. Файл открывается в режиме записи:
$newfile = fopen($filename, "w");
Указатель файла является переменной PHP, содержащей ссылку на открытый файл. Он будет задействован позже для записи содержимого в открытый файл.
Затем создается переменная с именем $file_contents и ей присваивается строковое значение, которое будет записано в текстовый файл myfile.txt.
Наконец вызывается функция fwrite(). Первый параметр функции fwrite() указывает на имя файла, в который будет записываться содержимое. Второй параметр содержит текст, который будет записываться в открытый файл.
fwrite($newfile, $file_contents);
После завершения обработки файла используется функция fclose() для закрытия открытого файла.
В некоторых случаях может понадобиться записать содержимое существующего файла в новый файл. Этот процесс требует использования функций fopen(), fread() и fwrite(). Открывается первый файл, читается его содержимое и записывается в новый файл, который также был открыт. Следующий сценарий показывает реализацию такого процесса:
filecopy.php
<?php
$fileAname = "C:/MyFiles/PHP/file1.txt"; $fileBname = "C:/MyFiles/PHP/file.txt";
$currentfile = fopen($fileAname,"r") or exit("Невозможно открыть файл"); $fileAcontents = fread($currentfile,filesize($fileAname));
$newfile = fopen($fileBname,"w");
fwrite($newfile, $fileAcontents);
fclose($newfile); fclose($currentfile);
echo "Содержимое файла file1.txt скопировано в файл file.txt";
?>
Этот сценарий копирует содержимое "file1.txt" в новый файл "file.txt". Сначала объявляются две переменные $fileAname и $fileBname, которым присваиваются пути доступа к каталогам существующего и нового файла. Функция fopen() используется для открытия текущего файла для чтения его содержимого. Открытый файл присваивается указателю файла $currentfile. Содержимое открытого файла считывается с помощью функции fread() и присваивается переменной $fileAcontents. Затем функция fopen() применяется снова для открытия нового файла. Открытый файл присваивается указателю файла $newfile. Функция fwrite() используется для записи содержимого исходного файла в новый файл. Когда процесс копирования завершается, оба файла закрываются с помощью функции fclose().