Получить родительскую папку текущего файла PHP

Я довольно много искал это, поэтому мне жаль, если это обман.
В любом случае мне нужно получить имя папки, в которой находится текущий файл. Например, я хочу преобразовать что-то вродеexample.com/folder/subfolder/file.php вsubfolder.
 Мой текущий кодdirname($_SERVER['PHP_SELF'])но это возвращает/folder/subfolder вместоsubfolder, Спасибо!

Ответы на вопрос(5)

Вам нужно объединить существующий код, используяdirname() с призывом кbasename():

$parent = basename(dirname($_SERVER['PHP_SELF']));
Решение Вопроса

Самый простой способ:

basename(__DIR__);

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

 Andrey08 авг. 2017 г., 00:29
Теперь это новый правильный ответ. :)
 17 сент. 2014 г., 21:49
Разве это не должно быть помечено как правильный ответ?$_SERVER['PHP_SELF'] может вернуть файл, в который включен «текущий файл». & Quot; текущий файл & quot; являетсяDIR право? Или я что-то упустил?
 18 сент. 2014 г., 17:59
@taylorcressy, кажется, что вышеупомянутый ответ был дан до этого ... также мы не используем магическую константу
 18 сент. 2014 г., 18:03
@MarcelDjaman Я понимаю, почему другой был помечен как правильный. Я просто уточняю, что это НАСТОЯЩИЙ правильный ответ. Технически, первый ответ не является правильным во всех случаях (т.е. во включенном файле)
 23 июн. 2015 г., 13:01
это должно быть помечено как правильный ответ.
str_replace('/','',$_SERVER[REQUEST_URI]);

Это работает для php7:str_replace('/','',$_SERVER["REQUEST_URI"]);

Результат:

lib/**images**/index.php

images

$folder = basename(dirname(__FILE__));

dirname() используется сbasename() будет работать ... и это, если вы хотите получить их все:

$folders = explode ('/', $_SERVER['PHP_SELF']);

Теперь $ folder будет содержать массив всех имен папок.

Приветствия.

 22 июн. 2012 г., 23:41
При этом следует остерегаться пустого элемента с индексом 0, который будет результатом пути, начинающегося с/
 22 июн. 2012 г., 23:41
Хороший вопрос - спасибо за добавление этой мысли.
 19 июл. 2016 г., 12:09
@DaveRandom Еще одна причина для выполнения тестов, прежде чем вводить код в работу! :) Но да, если это кого-то раздражает, я думаю, что единственный другой способ - это использовать регулярные выражения.

Ваш ответ на вопрос