В предыдущих уроках Вы познакомились с тем, как использовать РНР для чтения данных из файла и записи данных в файл с помощью семейства функций fopen (). Однако полученных знаний недостаточно для программирования таких операций манипулирования файлами, как удаление файлов, создание символических или жестких ссылок на файлы (в Unix) или копирование файлов. В этом разделе мы обсудим, как решать упомянутые задачи в РНР.
Хотя большинство из рассматриваемых в этом разделе функций (например, копирование файлов) вы можете реализовать самостоятельно, используя имеющиеся знания РНР, без такой функции, как удаление файла, не обойтись. В РНР эта функция называется unlink () и имеет следующий синтаксис:
unlink($filename)
где $filename – имя удаляемого файла. Функция unlink () возвращает булевское значение, показывающее, была ли операция удаления успешной. Как было упомянуто ранее в этой главе при обсуждении прав доступа к файлам, для того, чтобы в РНР удалить файл, необходимо, чтобы пользователь, от имени которого запущен РНР, имел разрешение на запись в каталог, содержащий этот файл.
Использование функции unlink ()
<?php
$files = glob("/tmp/*.tmp");
foreach($files as $val) {
unlink($val);}
?> Еще одной полезной функцией при работе с файлами является функция сору (). Как следует из ее названия, эта функция копирует заданный файл в новое место (или в тот же каталог, но под другим именем), сохраняя исходный файл неизменным. Функция сору () имеет следующий синтаксис:
copy($source_file, $dest_file)
где $source_file представляет путь и имя файла источника, a $dest_file задает путь и новое имя файла назначения. Функция сору () возвращает булевское значение, указывающее на успешное или неудачное завершение операции копирования. В приведенном ниже примере эта функция совместно с функцией unlink () применяется для создания функции move (), которая выполняет перемещение файла.
Использование функции сору()
<?php
function move($source, $dest) {
if(!copy($source, $dest)) return false;
if(!unlink($source)) return false;
return true;
}
if(!move("/tmp/myfile.txt", "/tmp/tmpdir/newfile.txt"){
echo "Ошибка! Невозможно переместить файл!<ВR>";
}


