![]() |
|
||||||||||||||
|
|
|
Пример копирования файла:
<?php
$source = 'readme.txt';
$dest = 'readme_copy.txt';
if(!copy($source, $dest)) {
echo "Ошибка копирования файла $source...<br />\n";
}
?>
Обратите внимание на конструкцию "<br />\n" в конце строки с ошибкой. Этот простой приём позволяет получать читаемый вид выводимого текста независимо от того куда текст выводится - в консоль отладчика или в браузер. Очень удобно на этапе отладки скрипта. Более сложный процесс - перемещение файла. Для выполнения перемещения служит функция rename(). Как и предыдущая функция, rename() принимает всего 2 агрумента - старое и новое имя файла. Если пути старого и нового файлов одинаковые - файл просто переименуется, а если разные - будет перемещен но повому пути и переименован. Пример переменования и перемещения файла:
<?php
$number = 123;
$source = 'readme.txt';
$dest = "./backups/readme_$number.txt";
if(!rename($source, $dest)) {
echo "Ошибка перемещения файла $source...<br />\n";
}
?>
В этом примере исходный файл readme.txt перемещается в подкаталог backups и переименовывается в readme_123.txt. Удалить существующий файл можно с помощью функции unlink(). Файловая система Unix позволяет создавать жесткие ссылки на существуюие файлы. Ссылка похожа на ярлыки Windows, но в Unix нельзя удалить исходный файл, пока на него есть жесткие ссылки. Функция unlink() удаляет вашу ссылку на файл, а если ссылок больше нет - удаляет его.
<?php
$file = "./backups/readme_123.txt";
if(!unlink($file)) {
echo "Ошибка удаления файла $file...<br />\n";
}
?>
Для удаления каталогов служит другая функция - rmdir(). Она принимает единственный параметр - имя каталога, который нужно удалить. Удаляемый каталог должен быть пуст, иначе операция завершится с ошибкой. Если каталог успешно удалён - функция вернёт TRUE, в противном случае - FALSE.
<?php
$directory = "./backups";
if(!rmdir($directory)) {
echo "Ошибка удаления каталога $directory...<br />\n";
}
?>
Отдельной функции для создания файлов в PHP нет. Все функции, позволяющие создать файл, выполняют и ряд других операций, но об этом мы поговорим в следующем уроке. Для создания каталога в PHP применяется функция mkdir(). Функция получает 1 параметр - имя создаваемого каталога. Если каталог успешно создан - функция вернёт TRUE, а при ошибке - FALSE.
<?php
$directory = "./backups";
if(!mkdir($directory)) {
echo "Ошибка создания каталога $directory...<br />\n";
}
?>
Дополнительные функцииВ PHP есть ряд функций, существенно помогающих в работе. Список функций с кратким описанием приведён в таблице.
В таблице приведены не все функции, используемые при работе с файлами. Полный список вы сможете найти в документации на официальном сайте. Поиск файлов и каталоговДля поиска файлов в каталогах сервера используется несколько функций: glob(), fnmatch() и функции работы с каталогами (opendir(), readdir(), rewinddir(), closedir()). Функция opendir() открывает указанный каталог и устанавливает внутренний указатель на первый файл. Функция возвращает так называемый "handle" (читается "хэндл") или "указатель". Этот указатель передаётся всем последующим функциям при работе с данным каталогом. Функция readdir() возвращает имя текущего файла в каталоге и перемещает внутренний указатель на следующий файл. Если последний файл уже был прочитан - функция вернёт FALSE. Функция rewinddir() сбрасывает внутренний указатель на первый файл в каталоге. Функция closedir() закрывает ранее открытый каталог и освобождает всеи используемые ресурсы. Функция fnmatch($pattern, $filename) проверяет, соответствует ли имя файла $filename маске $pattern. Пример поиска файла по шаблону:
<?php
$dir = "./backups/";
// проверяем, что $dir - каталог
if (is_dir($dir)) {
// открываем каталог
if ($dh = opendir($dir)) {
// читаем и выводим все элементы
// от первого до последнего
while (($file = readdir($dh)) !== false) {
if(fnmatch('myfile_*.txt', $file))
echo 'Резервная копия: ';
echo "$file : " .
filetype($dir . $file) . "<br />\n";
}
// закрываем каталог
closedir($dh);
}
}
?>
Функция glob( $pattern ) возвращает массив файлов и каталогов, соответствующих маске $pattern. Если произошла ошибка или ничего не найдено - функция вернёт FALSE. Пример:
<?php
foreach (glob("./backups/*.txt") as $filename) {
echo "$filename : " . filesize($filename) . " байт\n";
}
?>
Рассмотренных в этом уроке функций достаточно для решения большинства практических задач. Необходимость использования средств управления файлами возникает практически в каждом среднем и крупном проекте. Чаще всего упомянутые функции используются для работы с файловыми архивами, фото- и видеоальбомами, а так же при загрузке пользователями файлов на сервер. |
|
|
Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :) |
|
© 2005-2012 |
E-mail: |