A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 303

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

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

Автор: Mowshon.
Опубликовано 24 июля 2011
в рубрике PHP, Примеры

Просмотров: 14091.
Подписаться на комментарии по RSS.

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

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():

<?php
 if(copy("/myfolder/myfile.txt", "myfile.txt")) echo "Файл успешно скопирован";
 else echo "Не удалось скопировать файл";
?>

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

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

<?php
 // Копируем файл
 if(!copy("/myfolder/myfile.txt", "myfile.txt")) exit "Не удалось переместить файл";
 // Удаляем исходный файл
 if(unlink("/myfolder/myfile.txt")) echo "Файл успешно перемещен";
 else echo "Не удалось переместить файл";
?>

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

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

<?php
 // Перенос файла
 if(rename("/myfolder/myfile.txt", "myfile.txt")) echo "Файл успешно перемещен";
 else echo "Не удалось переместить файл";
?>

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

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

<?php
 if(copy("http://live-code.ru/index.php", "index.html"))
  echo "Файл успешно скопирован";
  else echo "Не удалось скопировать файл";
?>

Загруженный файл из сети не будет содержать исходных 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():

<?php
 // Проверяем, загружен ли файл
 if(is_uploaded_file($_FILES['filename']['tmp_name']))
 {
   // Файл успешно загружен, перемещаем его в текущий каталог
   if(move_uploaded_file($_FILES['filename']['tmp_name'],
                                 $_FILES['filename']['name']))
   echo "Файл успешно загружен";
  else
   echo "Файл не удалось загрузить";
 }
?>
<form action="upload.php" enctype="multipart/form-data" method="post">
<input name="filename" type="file" />
<input type="submit" value="Загрузить" />
</form>

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором введите email и пароль. Напишите комментарий. В дальшейшем ваша связка email-пароль, позволит вам комментировать и редактировать свои данные. Не забудьте про активацию (инструкция придет на ящик, указанный при регистрации).

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)