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