Существуют ли различия, когда я использую эти функции? Почему я должен использовать один, а не другой …
copy() копирует файл – теперь у вас есть 2 файла, и для больших файлов это может занять очень много времени rename() изменяет имя файла, что может означать перемещение между каталогами. move_uploaded_file() в основном то же самое, что и rename() , но он будет работать только с файлами, загруженными через механизм загрузки PHP. Это функция безопасности, которая мешает пользователям обманывать ваш скрипт, показывая им данные, относящиеся к безопасности. В будущем я предлагаю самостоятельно изучить эту информацию в Руководстве по PHP .
Я нашел это в руководстве по move_uploaded_file() :
Флориан С. в Х. ан дер Э. [.de] в 17 августа 2008 г. 09:02
move_uploaded_file (в моей настройке) всегда делает файлы
0600(rw- --- ---) и принадлежит пользователю, работающему с веб-сервером (группа владельца AND). Несмотря на то, что каталог имеет липкий бит, установленный для групповых разрешений! Я не мог найти никаких настроек, чтобы изменить это через php.ini или даже с помощьюumask().Я хочу, чтобы мой обычный пользователь на сервере мог использовать
tar cjfв каталоге .., который неtar cjfбы в файлах, полностью принадлежащих веб-серверу-процессу-пользователю; функцияcopy(from, to)подчиняется липким битам!
поэтому кажется, что copy и rename выполняют несколько другую работу.