Корневая папка PHP - PullRequest
       12

Корневая папка PHP

7 голосов
/ 04 сентября 2010
rename('/images/old_name.jpg', '/images/new_name.jpg');

Этот код дает файл не найден .

Скрипт, где вызываются файлы, находится внутри папки /source/.

Файлы можно открывать изhttp://site.com/images/old_name.jpg

Как получить эти файлы из корня?

Ответы [ 2 ]

33 голосов
/ 04 сентября 2010

rename является функцией файловой системы и требует путей к файловой системе. Но, похоже, вы используете пути URI.

Вы можете использовать $_SERVER['DOCUMENT_ROOT'] для добавления пути к корню документа:

rename($_SERVER['DOCUMENT_ROOT'].'/images/old_name.jpg', $_SERVER['DOCUMENT_ROOT'].'/images/new_name.jpg');

Или для большей гибкости используйте dirname на пути к текущему файлу __FILE__:

rename(dirname(__FILE__).'/images/old_name.jpg', dirname(__FILE__).'/images/new_name.jpg');

Или используйте относительные пути. Когда вы находитесь в папке / script , .. поднимается на один уровень вверх по каталогу:

rename('../images/old_name.jpg', '../images/new_name.jpg');
6 голосов
/ 04 сентября 2010

В PHP корень (/) является корнем файловой системы, а не "webroot". Если php-файл находится в каталоге /source/, а изображения в /source/images/, это будет работать:

rename('images/old_name.jpg', 'images/new_name.jpg');
...