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 Пример использования функции
<?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 и теперь могут быть 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.В случае успешного переименования функция возвращает
Ниже приводится пример использования функции 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