Функция 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.