Функция basename() — это встроенная функция PHP, которая извлекает имя файла по заданному пути. Его можно использовать для печати только имени файла из имени файла или пути к файлу. Эту функцию также можно использовать для печати имени существующего скрипта. Основная цель этой функции — узнать имя файла или имя текущего скрипта для любых целей программирования. В этом руководстве показано, как использовать функцию basename() в PHP.
Синтаксис:
string basename (string $path [, string $suffix ])
Эта функция может принимать два аргумента. Первый аргумент является обязательным и принимает имя файла или имя файла с путем в виде строкового значения. Второй аргумент является необязательным и используется для получения только имени файла без расширения.
В следующем примере показано использование функции basename() без необязательного аргумента.
Создайте файл PHP со следующим скриптом. Здесь функция basename() используется для существующих и несуществующих файлов. Функция Check() определена для проверки, существует ли конкретный файл или нет. Оба hello.txt и world.txt файлы используются в функции базового имени() , чтобы узнать имя файла с расширением.
<? php
function Check($ file)
{
if(file_exists($ file))
echo » $ file существует. <br/>»;
else
echo » $ file не существует. <br/>»;
}
// Устанавливаем существующее имя файла
$ basepath1 = «hello.txt»;
check($ basepath1);
// Использование функции basename() без необязательного параметра
echo «<p> Имя файла с расширением: <b>» . basename($ basepath1) . «</b> </p>»;
// Устанавливаем несуществующее имя файла
$ basepath2 = «world.txt»;
check($ basepath2);
// Использование функции basename() без необязательного параметра
echo «<p> Имя файла с расширением: <b>».basename($ basepath2) . «</b> </p>»;
// Использование функции basename() с необязательным параметром
echo «<p> Имя файла без расширения: <b>».basename($ basepath1,«.txt») .«</b> </p>» ;
?>
Вывод:
Следующий вывод появится после запуска вышеуказанного сценария с сервера. Вывод показывает, что файл hello.txt существует в текущем месте, а функция basename() возвращает имя файла. World.txt файл не существует в текущем местоположении, но функция basename() по- прежнему возвращает имя файла для этого файла. Таким образом, функция basename() возвращает имя файла из пути к файлу, независимо от того, существует файл или нет.
В предыдущем примере в первом аргументе функции basename() передается только имя файла. В этом примере показано использование функции basename() для определения имени файла с расширением и без расширения из пути к файлу. «.php» используется как необязательное значение аргумента функции basename(). Если файл PHP существует в пути к файлу, функция basename() вернет имя файла без расширения пути.
<? php
// Задаем путь к файлу
$ filepath = «var/www/html/php/book.php» ;
// Получить имя файла с расширением
echo «Имя файла с расширением»;
echo basename($ filepath) . «<br/>»;
// Получить имя файла без расширения
echo «Имя файла без расширения»;
echo basename($ filepath , «.php») . «<br/>» ;
?>
Вывод:
Cледующий вывод появится после запуска вышеуказанного сценария с сервера. Путь, который используется в скрипте, ‘ /var/www/html/php/book.php ‘, содержит файл PHP, а функция basename() возвращает book.php при использовании без необязательного аргумента и возвращает книгу, когда он используется с необязательным аргументом.
В следующем примере показано, как функцию basename() можно использовать для получения имени файла из URL-адреса, содержащего переменные запроса.
Создайте файл PHP со следующим скриптом. Здесь функция explode() используется для разделения URL-адреса и строки запроса. Эта функция возвращает массив. Первый элемент массива содержит URL-адрес, а второй элемент массива содержит значение строки запроса. Функция basename() используется для определения имени файла из первого элемента массива.
<? php
// Задайте URL-адрес с параметром запроса
$ url = «http://localhost/php/customer.php? id = 108967»;
// Получить путь к файлу из URL
$ filepath = explode(«?» , $ Url);
// Получить имя файла с расширением
echo «Имя файла с расширением»;
echo basename($ filepath [ 0 ]) . «<br/>»;
?>
Вывод:
Cледующий вывод появится после запуска вышеуказанного сценария с сервера. Здесь имя файла — customer.php.
Функцию basename() также можно использовать для определения имени каталога по пути. Он используется в следующем примере, чтобы узнать имя текущего каталога и имя каталога перед текущим каталогом из пути.
Создайте файл PHP со следующим скриптом. $ _SERVER [ «PHP_SELF»] используются в функции dirname(), чтобы прочитать полный путь к текущему сценарию, а функция basename() используются для чтения имени каталога, содержащее этот скрипт. Когда конкретный путь определен в функции dirname() и во втором аргументе этой функции используется ‘/’, тогда путь будет считывать путь к каталогу, опуская последнее имя каталога. В этом случае функция basename() вернет имя каталога после исключения последнего каталога из пути.
<? php
// Прочитать текущий каталог
$ current_dir = basename(dirname($ _SERVER [ ‘PHP_SELF’ ]) , «/»);
// Распечатать текущий каталог
echo «Текущий рабочий каталог: <b>» . $ current_dir . «</b> <br/>»;
// Считываем родительский каталог по пути
$ dir = basename(dirname(‘/ var/ www/ html/ php’) , «/»);
«Предыдущий каталог по заданному пути: <b>» . $ dir . «</b>»;
?>
Вывод:
Cледующий вывод появится после запуска вышеуказанного сценария с сервера.
Функцию basename() также можно использовать для чтения имени текущего скрипта. Когда __FILE__ используется в первом аргументе функции basename(), в качестве вывода будет возвращено имя файла сценария.
<? php
// Прочитать имя текущего скрипта
echo «Имя текущего скрипта: <b>».basename(__FILE__).»</b>» ;
?>
Вывод:
Cледующий вывод появится после запуска вышеуказанного сценария с сервера. В выходных данных отображается имя файла исполняемого сценария.
Функция basename() — полезная функция PHP, когда кодировщик работает с файлом или каталогом для различных целей. Различные варианты использования функции basename() объясняются в этой статье на простых примерах, чтобы помочь читателям понять ее правильное использование и применить в своих сценариях PHP.