Php узнать название папки

PHP Текущее местоположение скрипта, папки, имя файла

В языке PHP есть несколько полезных констант, которые мы можем применять в построении динамического пути к файлу или папке.

Как в PHP узнать полный путь к файлу или папке

Для начала приведу примеры, что вы получите вызвав соответствующие константы:

echo __FILE__; // /home/bitrix/www/bitrix/modules/main/admin/php_command_line.php echo __DIR__; // /home/bitrix/www/bitrix/modules/main/admin

Мы рассмотрели 2 константы, __FILE__ и __DIR__ для отображения полного пути к текущему файлу и папке (директории). Стоит отметить, что __DIR__ эквивалентен вызову:

echo dirname(__FILE__); // /home/bitrix/www/bitrix/modules/main/admin

dirname – это стандартная функция PHP, которая возвращает родительский каталог. Она применяется как раз для таких ситуаций, когда вам нужно узнать полный путь к файлу без самого файла :). Мне на ум пришла идея, как можно добиться такого же результата (не удивлюсь, если под капотом тоже самое):

echo str_replace(__FILE__, '',__DIR__); // /home/bitrix/www/bitrix/modules/main/admin

Что мы еще можем применить для константы __FILE__? Конечно же отделить путь и получить просто имя файла:

echo basename(__FILE__); // php_command_line.php

basename – функция возвращает последний элемент из пути, который, как правило, и является именем файла. Раз уж мы решили писать функции заменители, давайте рассмотрим наш URL, как массив, разделенный слешами (“/”):

$arPath = explode('/', __FILE__); // Array ( [0] => [1] => home [2] => bitrix [3] => www [4] => bitrix // [5] => modules [6] => main [7] => admin [8] => php_command_line.php

Как видим, последний элемент массива является нашим файлом. Чтобы получить последний элемент массива, не зная его количество, пишем:

$arPath = explode('/', __FILE__); echo $arPath[count($arPath)-1];

Минус 1 потому как отсчет для массивов идет с нуля, но при счете всегда стартует с единицы.
Важно – в некоторых указаниях полного пути вы используете разделители (вышеупомянутые слеши ‘/’). Но, для Windows это «\», для Linux и остальных — «/». Есть такая константа:

Читайте также:  Меняем цвет шрифта при помощи HTML

Вернет 1 слеш (без кавычек).

Немного закрепим 2 функции, о которых шла речь выше:
str_replace – функция, которая используется для замены в строке. Первый параметр “что ищем”, затем “на что меняем” и последний “где ищем”, в который мы и передали нашу полную строку.
explode – функция, которая делает из строки массив. Но, чтобы функции понять как разбить строку – ей нужно передать “разделитель”, а уже вторым параметром – саму строку.

Как вы заметили, “/home/bitrix/www” – это путь на самом сервере, который можно “вырезать” как раз при помощи str_replace.
Если вам нужно использовать “текущий домен”, то получить его при помощи PHP можно несколькими способами. Один из них:

echo $_SERVER['SERVER_NAME']; // site.com.ua

Надеюсь вам эта тема была интересна. Пишите в комментариях как вам формат, и нужен ли он вообще. А то в последнее время только битрикс да битрикс :).

Источник

Как узнать название папки в которой лежит php файл?

У меня проблема, нужно сделать так чтобы php выводил в переменную название папки в которой он находиться. Пробывал команду __DIR__ но она выводить полный путь к папке, а мне нужно только название папки. Информации в гугле не нашёл. Заранее спасибо)

Rsa97

Спасибо, но мне нужно только название последней папки а не всего пути к ней. Или я что-то в этом тебе не понял?

Compolomus

FanatPHP

FanatPHP

FanatPHP

FanatPHP

ну вот так и надо писать.
потому что «название папки» может означать и полный путь и последнюю апку.
и ни то ни другое к лежащему в папке файлу отношения не имеет

FanatPHP

ну так что написал, то и получил
на будущее думай, что спрашиваешь
тогда и гугль тебе сразу даст ответ на вопрос

FanatPHP, В гугле я написал правильно, и что он предложил полностью домен написать, а мне нужна только последняя папка. Да и вообще я уже вопрос исправил и уже дали ответ, только проверить надо.

FanatPHP

Тебе не кажется что у тебя с логикой проблемы?
Если тебе гугль дал неверный ответ, значит ты задал неверный вопрос.
Поэтому не надо блеять что » гугле я написал правильно».
Написал бы «пхп получить последнюю папку», и получил бы ответ на свой вопрос

FanatPHP, не ну знаешь если ты уже до такого дошёл. Если ты умеешь хорошо гуглить, и ник у тебя говорит что ты “фанат php”, то почему ты не мог как некоторые на этом форуме, найти в гугле и ответ прислать. (а не оскорблять тут)

FanatPHP

FanatPHP

FanatPHP

Не наоборот четко. Зачем же ты тут из себя самово умного делаешь? Я ответ получил и все. А ты тут продолжаешь изо каких-то слов не о чём говорить. Я же правильно суть изложил и получил правильный ответ! И не надо тут обзываться. И это не я позорюсь, ясно же на мойом акаунте написано, я в первую очередь верстальщик а уже потом чючють программист, вот и спросил у людей которые лучше об этом знают. Мы уже 2 часа выясняем непонятно что! Этот вопрос был правильно изложен, и я получил ответ. А мы тут не по сути говорим!

FanatPHP

Войдите, чтобы написать ответ

Как перевести curl запрос на php с передачей сертификатов (api Сбербанка)?

Источник

Оцените статью