#php #directory #separator
#php #каталог #разделитель
Вопрос:
Я хотел бы получить только имя приложения моего проекта, например, имя моего приложения (имя каталога): MERP Путь к приложению: C:/xampp/htdocs/MERP Поэтому мне нужно получить только имя MERP.
Существует другой способ сохранения имени приложения внутри файла конфигурации с использованием синтаксиса define и включения во все файлы, но мой сценарий застрял только на этом шаге.
Комментарии:
1. базовое имя? Что-то вроде
basename(__DIR__)
, но зависит от структуры вашего проекта. php.net/manual/en/function.basename.php2. Вы можете использовать переменную среды, если у вас аллергия на includes .
3.
basename(__DIR__)
должно возвращать только имя каталога файла, в котором он вызывается, без полного пути. Итак, если вы вызвали это в /path/to/htdocs/MERP/foo.php , он должен вернуть MERP.4. да, проблема в том, что мне нужно получить доступ к приложению с разных уровней каталогов (подкаталогов и подкаталогов).
5. Внутри и под каталогом MERP?
Ответ №1:
Здравствуйте, вы можете использовать это, чтобы получить имя словаря MERP, просто этот php-код ниже
basename(__DIR__);
Если вы хотите получить и вывести, вы можете использовать echo
предшествующий этому код
Если у вас есть несколько словарей в родительском каталоге, пожалуйста, используйте этот код:
<?php
$rootAfter = $_SERVER['REQUEST_URI'];
$dir_array = parse_url($rootAfter);
preg_match('@/(?<path>[^/] )@', $dir_array['path'], $x);
$folderName = $x['path'];
echo $folderName;
?>
Более подробная информация на php.net
Комментарии:
1. Я не могу использовать этот код, потому что я получаю доступ к файлам с разных уровней каталогов
MERP/module_hr/reports
, например, и другого уровня, напримерMERP/module_sales/reports/admin
2. Здравствуйте, не могли бы вы указать, используете ли вы веб-сервер или локальный хост
3. Я использую оба.
4. отлично работает!!! но интересно, есть ли более короткий код, потому что этот код будет выполняться на каждой странице приложения. Спасибо
5. Вы можете создать из него функцию
Ответ №2:
Для файлов Php в каталоге внутри и под корнем вашего документа:
Вы могли бы попробовать:
strtok(str_replace(realpath($_SERVER['DOCUMENT_ROOT']), '', __FILE__), DIRECTORY_SEPARATOR);
Однако это все еще хрупко. И я бы посоветовал против этого, предпочитая установочный / загрузочный файл с объявлением константы и возможное место для общих функций.
Php позволяет использовать общий файл перед вашими сценариями, см. Директиву auto_prepend_file . Это может быть полезно, если вы хотите выйти за рамки нескольких констант и сохранить требуемые строки из отдельных файлов.
Если вам нужно всего несколько констант, рассмотрите переменные среды.
Комментарии:
1. результат пустой.
2. @Moussa ну, это смущает, я исправил порядок аргументов.
3. он показывает полный URL-путь. мне нужно только извлечь имя основного каталога приложения, которое идет после htdocs …
4. @Moussa как ты это запускаешь? Через командную строку или через XAMPP?
5. запуск через xampp