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