Опубликован: 08.05.2007 | Доступ: свободный | Студентов: 12881 / 3013 | Оценка: 4.13 / 3.77 | Длительность: 12:58:00
Лекция 11:

Доступ к файлам и папкам

< Лекция 10 || Лекция 11: 123 || Лекция 12 >

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

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

Копирование файлов

Этот раздел описывает, как использовать PHP для копирования файлов в системах Windows.

PHP содержит функцию copy() для копирования файлов. Эта функция определяется ниже:

copy(исходный_файл, новый_файл) – копирует содержимое исходного файла, определенного первым параметром, в новый файл, определенный вторым параметром функции. Функция возвращает значение true или false.

Следующий пример показывает, как скопировать содержимое одного файла в другой файл:

filecopy.php 

<?php

$orig_filename = "C:/Documents and Settings/Administrator/MyFiles/myfile.txt";

$new_filename = "C:/Documents and Settings/Administrator/MyFiles/myNewfile.txt";

$status = @copy($orig_filename, $new_filename) or die("Невозможно скопировать файл");

echo "Содержимое файла успешно скопировано!";
				
?>

Первый шаг состоит в создании переменной для хранения полного пути доступа к исходному файлу, содержимое которого будет скопировано:

$orig_filename = "C:/Documents and Settings/Administrators/MyFiles/myfile.txt";

Затем создается вторая переменная для хранения полного пути доступа к новому файлу, который будет создан:

$new_filename = "C:/Documents and Settings/Administrators/MyFiles/myNewfile.txt";

Копирование выполняет функция copy(), принимая два параметра, путь доступа к исходному файлу — $orig_filename, и путь доступа к новому — $new_filename. Функция copy() возвращает значение true, если копирование завершается успешно; иначе возвращается значение false. Возвращаемое значение хранится в переменной $status.

$status = copy($orig_filename, $new_filename) or die("Невозможно скопировать файл");

Если функция copy() отказывает, выполняется функция die(), выводя сообщение об ошибке. Иначе с помощью функции echo выводится сообщение об успехе.

echo "Содержимое успешно скопировано";

В предыдущем разделе функция fwrite() используется вместе с функцией fread() для чтения содержимого одного файла и записи этого содержимого в новый файл. Если содержимое исходного файла не добавляется к существующему файлу, то функция copy() предоставляет более простой подход для копирования содержимого из существующего файла в новый файл.

< Лекция 10 || Лекция 11: 123 || Лекция 12 >
Максим Матросов
Максим Матросов
Наталья Джабасова
Наталья Джабасова