PHP отсоединить файл от корневого пути

Мой скрипт находится в http://localhost/path/test/index.php, а файл, который я хочу удалить, находится в http://localhost/path/media/test.txt.

Я хочу, чтобы путь проекта был константой PATH, которая в этом примере будет path/. Поэтому я попробовал использовать корневой путь unlink("/" . PATH . "media/test.txt"), но это не сработало.

Любые идеи, как решить эту проблему пути?


person Max Meuten    schedule 25.08.2014    source источник
comment
Соответствует ли структура каталогов на диске структуре URL? Если да: unlink('../media/text.txt')   -  person George Cummins    schedule 26.08.2014
comment
"/" . PATH . "media/test.txt" не относится к корню, по крайней мере, если под корнем вы подразумеваете корень документа веб-сервера. Этот путь настолько абсолютен (например, абсолютная файловая система), насколько это возможно.   -  person Jon    schedule 26.08.2014
comment
веб-адреса имеют очень мало общего с путями файловой системы. вы не можете использовать один вместо другого.   -  person Marc B    schedule 26.08.2014


Ответы (1)


Поставив / в начале ссылки, вы говорите PHP удалить из корня файловой системы сервера, которая вряд ли будет той же папкой, что и ваш локальный хост (вероятно, /var/www/)

В идеале в веб-приложениях вы должны определить корень вашего приложения в файловой системе, например:

$root = '/var/www/sites/project/';

Затем вы можете отменить связь, например:

unlink( $root . "media/test.txt" );

В качестве альтернативы вы можете отменить связь по относительному, а не по абсолютному пути (как указано выше:)

unlink( '../media/test.txt' );

Чтобы получить свой корень, см.: это

person Kohjah Breese    schedule 25.08.2014