rename($_SERVER['DOCUMENT_ROOT'].'/archive.zip', $_SERVER['DOCUMENT_ROOT'].'/folder/archive .zip');Другий варіант також заслуговує на увагу. Переміщення файлу здійснюється копіюванням файлу функцією Copy, а потім видалення оригіналу функцією Unlink. Робиться все це так:copy($_SERVER['DOCUMENT_ROOT'].'/archive.zip', $_SERVER['DOCUMENT_ROOT'].'/folder/archive.zip');
unlink($_SERVER['DOCUMENT_ROOT'].'/archive.zip');Оскільки основним завданням функції Rename є перейменування файлу, багато програмістів-початківців використовують другий варіант. Давайте розберемо який варіант працює швидше. Для цього виконаємо наступний код:
$start = microtime(true);
for ($i = 1; $i < 100; $i++) {
rename($_SERVER['DOCUMENT_ROOT'].'/archive.zip', $_SERVER['DOCUMENT_ROOT'].'/folder/archive.zip');
rename($_SERVER['DOCUMENT_ROOT'].'/folder/archive.zip', $_SERVER['DOCUMENT_ROOT'].'/archive.zip');
}
echo round(microtime(true) - $start, 4);Цей скрипт перезаписує файл 100 разів, і виконує це за 0.0024 секунд.
Тепер порівняємо другий варіант:
$start = microtime(true);
for ($i = 1; $i < 100; $i++) {
copy($_SERVER['DOCUMENT_ROOT'].'/archive.zip', $_SERVER['DOCUMENT_ROOT'].'/folder/archive.zip');
unlink($_SERVER['DOCUMENT_ROOT'].'/archive.zip');
copy($_SERVER['DOCUMENT_ROOT'].'/folder/archive.zip', $_SERVER['DOCUMENT_ROOT'].'/archive.zip');
unlink($_SERVER['DOCUMENT_ROOT'].'/folder/archive.zip');
}
echo round(microtime(true) - $start, 4);Результати перевершили усі очікування, скрипт виповнився за 0.032 секунди.
Тепер можна зробити висновок, для переміщення файлу потрібно використовувати функцію Rename.