2016-06-27 2 views
0

В некоторых случаях некоторые из нас предпочитают вставлять скрипт в подкаталог, например: http://example.com/Script/index.php, а некоторые другие предпочитают вставлять скрипт в корневой каталог ex: http://example.com/index.php.Как я знаю, работает ли скрипт из подкаталога или нет?

Как узнать, существует ли сценарий внутри подкаталога или нет?

+0

, посмотрев URL-адрес или путь к файлу? не совсем уверен, что вы спрашиваете. возможно, вы хотите '__DIR__'? –

+0

@Dagon: Я хочу знать программно, добавил ли пользователь файлы сценария в подкаталог или напрямую к root. Что касается '__DIR__', не подходит для этой работы –

ответ

0

Ну, это должно быть довольно просто. Имейте в виду, если __FILE__ является символической ссылкой, для этого потребуются некоторые корректировки.

$root = $_SERVER['DOCUMENT_ROOT']; 

/** 
* @var bool TRUE if current script is in DOCUMENT ROOT, FALSE otherwise. 
*/ 
$inRoot = __FILE__ == $root . DIRECTORY_SEPARATOR . basename(__FILE__); 

#OR 
$inRoot = dirname($_SERVER['SCRIPT_FILENAME']) == $_SERVER['DOCUMENT_ROOT']; 
+0

Спасибо, но, к сожалению, в обоих случаях я получаю тот же результат ->' false'. –

+0

Это работает для меня. Довольно уверен, что вы делаете что-то неправильно. Вы видели '$ _SERVER ['DOCUMENT_ROOT']' значение? Можете ли вы отлаживать каждую часть вышеприведенного скрипта? Во всяком случае, я думаю, вы поняли! ;) – felipsmartins

+0

'$ _SERVER ['DOCUMENT_ROOT']' = 'C:/Program Files (x86)/wamp/www' ,' __FILE__' = 'C: \ Program Files (x86) \ wamp \ www \ script \ system \ Router.php'. –

0

... или, возможно, вы можете попробовать getcwd(). Возвращает текущий рабочий каталог при успешном завершении или FALSE при сбое.

+0

» Я благодарю вас, но когда я использую 'getcwd()' и скрипт в подкаталоге, результат становится 'C: \ Program Files (x86) \ wamp \ www \ script', в то время как если скрипт в корневой папке стал «C: \ Program Files (x86) \ wamp \ www'. как вы видели во втором результате, хотя скрипт в корне, но результат не «ложный», как ожидалось –