PHP: Функции unlink () и сору()

В предыдущих уроках Вы познакомились с тем, как использовать РНР для чтения данных из файла и записи данных в файл с помощью семейства функций 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>";
}

 

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...