PHP Манипулирование файлами

Помимо создание файлов очень часто возникают задачи,связанные с их перемещением,переименованием и удалением.Функции,ответственные за эти операции,представлены ниже.

Функции манипуляции файлами:

copy($source, $destination) - копирует файл с именем $source в файл с именем $destination.В случае успешного копирования функция возвращает TRUE,в противном случае возвращает FALSE.

unlink($filename) - удаляет файл с именем $filename.В случае успешного удаления функция возвращает TRUE,в противном случае возвращает FALSE.

rename($oldname, $newname) - переименовывает файл с именем $oldname,назначая ему новое имя $newname.В случае успешного переименования функция возвращает TRUE,в противном случае возвращает FALSE.

Ниже приводится пример использования функции copy(),которая копирует /myfolder/myfile.txt в текущий каталог.Если на момент копирования файл myfile.txt существовал в текущем каталоге,он будет перезаписан без предупреждений.

Использование функции copy():

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

Перемещение файла:

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

Использование функции rename():

Функции copy() и rename() могут копировать не только локальные файлы,но и сетевые.

Копирование файла из сети:

Загруженный файл из сети не будет содержать исходных PHP-кодов,лишь HTML-представление(даже если скрипт и копируемый файл находятся на одном сервере).
Это связано с тем,что обращение идет к Web-серверу,а не к файловой системе.По этой же причине при помощи функции copy() или любой другой функции невозможно загрузить файл на сервер.

Для загрузки файлов на сервер используется HTML-форма и элемент управления типа file.Сервер помещет загруженный файл во временный каталог(путь к файлу во временном каталоге можно получить при помощи элемента $_FILES['filename']['tmp_name']),из которого скрипт может его скопировать в любое другое место.Для проверки факта загрузки файла на сервер и перемещения его предназначены специальные функции,описание которых представлено ниже:

if_upload_file($filename) - возвращает TRUE,если файл был загружен на сервер,и FALSE в противном случае.В качестве аргумента функция принимает элемент массива $_FILES['filename']['tmp_name'],содержащий загруженный файл во временном каталоге.

move_uploaded_file($filename, $destination) - перемещает файл из временного каталога в каталог назначения.В качестве первого аргумента $filename зачастую используется элемент $_FILES['filename']['tmp_name'],второй аргумент может быть произвольным.Если необходимо сохранить исходное имя файла,можно воспользоваться элементом $_FILES['filename']['name'].В отличие от функции copy() функция move_uploaded_file() оперирует лишь загруженными файлами.

Использование функции is_uploaded_file() и move_uploaded_file():