basename

(PHP 4, PHP 5)

basenameВозвращает последний компонент имени из указанного пути

Описание

string basename ( string $path [, string $suffix ] )

При передаче строки с путем к файлу или каталогу, данная функция вернет последний компонент имени из данного пути.

Список параметров

path

Путь.

На платформах Windows в качестве разделителей имен директорий используются оба слэша (прямой / и обратный \). В других операционных системах разделителем служит прямой слэш (/).

suffix

Если компонент имени заканчивается на suffix, то он также будет отброшен.

Возвращаемые значения

Возвращает базовое имя указанного пути path.

Список изменений

Версия Описание
4.1.0 Добавлен параметр suffix

Примеры

Пример #1 Пример использования функции basename()

<?php
echo "1) ".basename("/etc/sudoers.d"".d").PHP_EOL;
echo 
"2) ".basename("/etc/passwd").PHP_EOL;
echo 
"3) ".basename("/etc/").PHP_EOL;
echo 
"4) ".basename(".").PHP_EOL;
echo 
"5) ".basename("/");
?>

Результат выполнения данного примера:

1) sudoers
2) passwd
3) etc
4) .
5)

Примечания

Замечание:

basename() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа "..".

Замечание:

basename() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale() function.

Смотрите также

  • dirname() - Возвращает имя родительского каталога из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу

Коментарии

If you want the current path where youre file is and not the full path then use this :)

<?php
echo('dir = '.basename (dirname($_SERVER['PHP_SELF']),"/"));   
// retuns the name of current used directory
?>

Example: 

www dir: domain.com/temp/2005/january/t1.php

<?php
echo('dirname <br>'.dirname($_SERVER['PHP_SELF']).'<br><br>');   
// returns: /temp/2005/january
?>

<?php
echo('file = '.basename ($PHP_SELF,".php"));   
// returns: t1
?>

if you combine these two you get this
<?php 
echo('dir = '.basename (dirname($_SERVER['PHP_SELF']),"/"));   
// returns: january
?>

And for the full path use this
<?php 
echo(' PHP_SELF <br>'.$_SERVER['PHP_SELF'].'<br><br>');
// returns: /temp/2005/january/t1.php   
?>
2005-01-29 18:24:16
http://php5.kiev.ua/manual/ru/function.basename.html
There is only one variant that works in my case for my Russian UTF-8 letters:

<?php
function mb_basename($file)
{
    return 
end(explode('/',$file));
}
><

It is intented for UNIX servers
2008-08-27 11:20:20
http://php5.kiev.ua/manual/ru/function.basename.html
Автор:
Here is a quick way of fetching only the filename (without extension) regardless of what suffix the file has.

<?php

// your file
$file 'image.jpg';

$info pathinfo($file);
$file_name basename($file,'.'.$info['extension']);

echo 
$file_name// outputs 'image'

?>
2009-10-12 18:43:36
http://php5.kiev.ua/manual/ru/function.basename.html
Автор:
It's a shame, that for a 20 years of development we don't have mb_basename() yet!

// works both in windows and unix
function mb_basename($path) {
    if (preg_match('@^.*[\\\\/]([^\\\\/]+)$@s', $path, $matches)) {
        return $matches[1];
    } else if (preg_match('@^([^\\\\/]+)$@s', $path, $matches)) {
        return $matches[1];
    }
    return '';
}
2017-07-20 20:04:25
http://php5.kiev.ua/manual/ru/function.basename.html

    Поддержать сайт на родительском проекте КГБ