Мне нужно имя текущей папки через PHP. Я уже знаю, что basename поможет этому.
<?php echo basename(__DIR__);?>
Но это не поможет мне из-за моей структуры папок.
Вот моя странная настройка;
| template.php
|/Страницы/
|/pages/requiredfoldername/index.php
Так что в моем index.php это только одна строка
<?php include './../../template.php';?>
Итак, мой вопрос заключается в том, что я должен писать в template.php для получения текущего имени папки?
<?php
$parts = explode("/", $_SERVER['REQUEST_URI']);
echo $parts[3];
?>
Спасибо всем, я попросил моего друга, и он придумал это решение. И это работает !!!
explode()
- это скорее обходной путь, чем решение профессионального уровня. При поиске данных, связанных с каталогом / путем, в вашем распоряжении есть определенные функции. Помните также, что эта страница будет посещаться будущими исследователями в течение длительного времени в будущем, и они захотят узнать «лучший» способ выполнить эту задачу. Пожалуйста, внесите свой вклад в превращение StackOverflow в прекрасный источник знаний.
используйте dirname()
два раза: <?php include(dirname(dirname(__FILE__));?>
getcwd();
or
dirname(__FILE__);
or (PHP5)
basename(__DIR__)
Это то, что вам нужно:
dirname($path)
dirname: для строки, содержащей путь к файлу или каталогу, эта функция вернет путь родительского каталога.
__FILE__: Полный путь и имя файла с символическими ссылками разрешены. Если используется внутри include, возвращается имя включенного файла.
-
Внутри template.php, __FILE__ - это абсолютный путь к template.php:
/[path to your app]/template.php
Затем dirname (__ FILE__) возвращает:
/[path to your app]/
-
Внутри index.php, __FILE__ - это абсолютный путь к index.php:
/[path to your app]/pages/requiredfoldername/index.php
Затем dirname (__ FILE__) возвращает:
/[path to your app]/pages/requiredfoldername
Также в template.php, возможно, $ _SERVER поможет вам с ключом "SCRIPT_FILENAME". Этот ключ содержит абсолютный путь (с исключениями в CLI) к исполняемому скрипту:
Если /pages/requiredfolder/index.php является вашей точкой входа в приложение, когда вы включаете template.php, исполняемый скрипт в данный момент остается index.php. Таким образом, $ _SERVER ['SCRIPT_FILENAME'] будет
'/[path to your app]/pages/requiredfoldername/index.php'
Использование dirname с $ _SERVER ['SCRIPT_FILENAME'] приводит к:
'/[path to your app]/pages/requiredfoldername'
getcwd()
? php.net/getcwd