Получить каталог веб-сайта в файловой системе с помощью PHP

У меня есть веб-сайт на моем локальном компьютере. Я использую wamp-сервер для запуска своего сайта.

URL-адрес веб-сайта: http://localhost/mywebsite/.

Я поместил файл PHP на свой веб-сайт в папку mywebsite/component/add/files/add.php.

Таким образом, фактический путь к файлу c:\\wamp\www\mywebsite\component\add\files\add.php.

Я хочу показать путь c:\wamp\www\mywebsite в моем файле.

Как я могу это получить? И в будущем, когда я перенесу свой сайт в другое место, мне не нужно будет вручную менять путь. Он должен обновляться автоматически. Есть ли какая-нибудь функция для этого?

например Если я перенесу свой сайт в mywebsite/demo, путь будет C:\wamp\www\mywebsite\demo

Я надеюсь, что это понятно для понимания. Я не хочу показывать там путь http://localhost/mywebsite.

Может кто-нибудь мне помочь ???


person Jinal Dabhi    schedule 24.05.2012    source источник
comment
В вашей ситуации я бы создал переменную, доступную на каждой странице (через включение), которая содержит префикс, а затем префикс к вашим URL-адресам, то есть $Prefix = './mywebsite';, а затем <a href="<?php echo $Prefix; ?>/demo">View our demo</a>. Когда вы перемещаете свой сайт, вы просто меняете $Prefix на что-то вроде ./newwebsite', и все ваши ссылки автоматически обновляются.   -  person Gavin    schedule 24.05.2012


Ответы (3)


Массив $_SERVER должен содержать искомую информацию. Например:

$_SERVER['DOCUMENT_ROOT']

Это будет сконфигурированный корень документа для сервера PHP. В вашем случае, я думаю, это будет c:\wamp\www. Вы также можете использовать:

$_SERVER['SCRIPT_FILENAME']

Это будет абсолютный путь к текущему запущенному скрипту. Существуют также некоторые магические константы, которые содержат полезную информацию, особенно если вы также имеют PHP-скрипты, работающие вне контекста веб-сервера. (фоновые задачи и т.д.)

person David    schedule 24.05.2012
comment
Разве вместо этого не будет отображаться c:\wamp\www, поскольку mywebsite является подпапкой www, которая является основной папкой приложения? - person Gavin; 24.05.2012
comment
@Gavin: Хороший вопрос, я этого не уловил. Ответ обновлен. Похоже, у Ринзлера тоже была правильная идея. - person David; 24.05.2012

Использовать:

  $_SERVER['DOCUMENT_ROOT']; 

or

 Perhaps you want: dirname(__FILE__)

http://php.net/manual/en/language.constants.predefined.php

person Rinzler    schedule 24.05.2012

Вы можете использовать этот код

str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME'])

или альтернативно

str_replace($_SERVER['DOCUMENT_ROOT'], '', dirname(__FILE__));
str_replace($_SERVER['DOCUMENT_ROOT'], '', __DIR__); // works only in php > 5.3
person Fabio    schedule 24.05.2012