copy — Копирует файл | Руководство по PHP

(PHP 4, PHP 5, PHP 7)

copy — Копирует файл

Описание

bool copy ( string $source , string $dest [, resource $context ] )

Если вы хотите переместить файл, используйте функцию rename().

Список параметров

source

Путь к исходному файлу.

dest

Путь к целевому файлу. Если dest является URL, то операция копирования может завершиться ошибкой, если обертка URL не поддерживает перезаписывание существующих файлов.

Внимание

Если целевой файл уже существует, то он будет перезаписан.

context

Корректный ресурс контекста, созданный функцией stream_context_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

ВерсияОписание
5.3.0 Добавлена поддержка контекста.
4.3.0 Оба параметра source и dest теперь могут быть URL, если включены «обертки fopen». Подробнее смотрите функцию fopen().

Примеры

Пример #1 Пример использования функции

copy()

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!

copy($file, $newfile)) {
    echo "не удалось скопировать $file...\n";
}
?>

Смотрите также

Вернуться к: Файловая система

php.ru

PHP 5.6 и PHP 7 на русском: Функция copy()

(PHP 4, PHP 5, PHP 7)

copy — Копирует файл

Описание

bool copy ( string $source , string $dest [, resource $context ] )

Если вы хотите переименовать файл, используйте функцию rename().

Список параметров

source

Путь к исходному файлу.

dest

Путь к целевому файлу. Если dest является URL, то операция копирования может завершиться ошибкой, если обертка URL не поддерживает перезаписывание существующих файлов.

Внимание

Если целевой файл уже существует, то он будет перезаписан.

context

Корректный ресурс контекста, созданный функцией stream_context_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

ВерсияОписание
5.3.4 Изменён параметр context для достижения результата. Ранее любые параметры context игнорировались.
5.3.0 Добавлена поддержка контекста.
4.3.0 Оба параметра source и
dest
теперь могут быть URL, если включены «обертки fopen». Подробнее смотрите функцию fopen().

Примеры

Пример #1 Пример использования функции copy()

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!

copy($file, $newfile)) {
    echo "не удалось скопировать $file...\n";
}
?>

Смотрите также

php5.kiev.ua

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>

Еще записи по теме

live-code.ru