Введение в программирование на PHP5

Запись в файлы


Этот раздел описывает, как использовать 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().


Содержание раздела