PHP Получить только путь к каталогу - PullRequest
9 голосов
/ 08 апреля 2010

у меня есть:

$page_file_temp = $_SERVER["PHP_SELF"];

, который выдаст: /templates/somename/index.php

Я хочу извлечь из этого пути только "/templates/somename/"

Как я могу это сделать? Спасибо!

Ответы [ 5 ]

22 голосов
/ 08 апреля 2010
$page_directory = dirname($page_file_temp);

См. dirname .

5 голосов
/ 03 марта 2013

Может быть, это ваше решение:

$rootPath = $_SERVER['DOCUMENT_ROOT'];
$thisPath = dirname($_SERVER['PHP_SELF']);
$onlyPath = str_replace($rootPath, '', $thisPath);

Например:

$_SERVER['DOCUMENT_ROOT'] - корневой путь сервера, подобный этому /home/abc/domains/abc.com/public_html

$_SERVER['PHP_SELF'] примерно такой путь к этому сценарию, как этот /home/abc/domains/abc.com/public_html/uploads/home/process.php

Тогда мы можем иметь:

$rootPath как это /home/abc/domains/abc.com/public_html

$thisPath нравится /home/abc/domains/abc.com/public_html/uploads/home

И $onlyPath вот так /uploads/home

1 голос
/ 08 апреля 2010

Использование parse_url будет учитывать переменные GET и «фрагменты» (часть URL после #) среди других специфичных для URL частей.

$url = $_SERVER['PHP_SELF']; // OR $_SERVER['REQUEST_URI']

echo parse_url($url, PHP_URL_PATH);
1 голос
/ 08 апреля 2010

Посмотрите на функцию dirname () .

Из документов dirname() удаляет косую черту. Если вы хотите сохранить его, вы можете добавить к результату постоянную DIRECTORY_SEPARATOR.

$dir = dirname('mystring/and/path.txt').DIRECTORY_SEPARATOR;
0 голосов
/ 08 апреля 2010

Альтернатива:

$directory = pathinfo($page_file_temp,PATHINFO_DIRNAME);

http://www.php.net/manual/en/function.pathinfo.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...