Изображенный PHP's переименовывает, был бы мой лучший выбор. Я не видел многих примеров о том, как использовать относительные URL в нем, хотя, таким образом, я отчасти пошел на компромисс. Так или иначе это дает мне отклоненное разрешение:
Я хочу сделать это:
$file = "../data.csv";
rename("$file", "../history/newname.csv");
То, куда../, конечно, возвратился бы 1 каталог от того, где сценарий, работало. Я не мог выяснить путь..., таким образом, я сделал это вместо этого:
$file = "data.csv";
$path = dirname(realpath("../".$file));
rename("$path/$file", "$path/history/newname.csv");
Однако я получаю отклоненное разрешение (да, папка истории принадлежит www-данным и да, data.csv принадлежит www-данным). Я думал, что это было странно, таким образом, я попробовал простой тест:
rename( 'tempfile.txt', 'tempfile2.txt' );
и я удостоверился, что www-данные имели полный контроль над tempfile.txt..., все еще отклонили разрешение. Почему? файл Ваше переименование его для существования? разве Вы не можете переименовать как mv Linux? Таким образом, я вместо этого просто копирую () и удаляю связь ()?