Php get file parts

Функция pathinfo в PHP, описание и примеры

Функция pathinfo() возвращает ассоциированный массив, содержащий информацию об имени, расширении и директории файла.

array pathinfo(string path [, int options])

Параметры функции pathinfo

path Строковое значение имени файла. Может быть задано только именем файла, а так же содержать полный путь к файлу.
options Необязательный параметр. Если задан, то функция вернет не весь массив, а только указанный элемент массива. Допустимые значения:
PATHINFO_DIRNAME – директория файла
PATHINFO_BASENAME – полное имя файла (имя с расширением)
PATHINFO_EXTENSION – расширение файла
PATHINFO_FILENAME – имя файла без расширения

Элементы возвращаемого массива функции pathinfo

Если указан только первый параметр будет возвращен массив, содержащий следующие поля:

$arr[‘dirname’] директория файла
$arr[‘basename’] полное имя файла (имя с расширением)
$arr[‘extension’] расширение файла
$arr[‘filename’] имя файла без расширения

Пример использования функции pathinfo

$file_name = 'folder1/folder2/myfile.txt'; // функция вернет массив со всей информацией о файле $file_info = pathinfo($file_name); echo $file_info['dirname']; // выведет "folder1/folder2" echo $file_info['basename']; // выведет "myfile.txt" echo $file_info['extension']; // выведет "txt" echo $file_info['filename']; // выведет "myfile" // функция сразу возвращает указанный элемент массива echo pathinfo($file_name, PATHINFO_DIRNAME); // выведет "folder1/folder2" echo pathinfo($file_name, PATHINFO_BASENAME); // выведет "myfile.txt" echo pathinfo($file_name, PATHINFO_EXTENSION); // выведет "txt" echo pathinfo($file_name, PATHINFO_FILENAME); // выведет "myfile"

Источник

pathinfo

pathinfo() returns information about path : either an associative array or a string, depending on flags .

Note:

For information on retrieving the current path info, read the section on predefined reserved variables.

Note:

pathinfo() operates naively on the input string, and is not aware of the actual filesystem, or path components such as » .. «.

Note:

On Windows systems only, the \ character will be interpreted as a directory separator. On other systems it will be treated like any other character.

pathinfo() is locale aware, so for it to parse a path containing multibyte characters correctly, the matching locale must be set using the setlocale() function.

Читайте также:  Приклеенный заголовок

Parameters

If present, specifies a specific element to be returned; one of PATHINFO_DIRNAME , PATHINFO_BASENAME , PATHINFO_EXTENSION or PATHINFO_FILENAME .

If flags is not specified, returns all available elements.

Return Values

If the flags parameter is not passed, an associative array containing the following elements is returned: dirname , basename , extension (if any), and filename .

Note:

If the path has more than one extension, PATHINFO_EXTENSION returns only the last one and PATHINFO_FILENAME only strips the last one. (see first example below).

Note:

If the path does not have an extension, no extension element will be returned (see second example below).

Note:

If the basename of the path starts with a dot, the following characters are interpreted as extension , and the filename is empty (see third example below).

If flags is present, returns a string containing the requested element.

Examples

Example #1 pathinfo() Example

$path_parts = pathinfo ( ‘/www/htdocs/inc/lib.inc.php’ );

echo $path_parts [ ‘dirname’ ], «\n» ;
echo $path_parts [ ‘basename’ ], «\n» ;
echo $path_parts [ ‘extension’ ], «\n» ;
echo $path_parts [ ‘filename’ ], «\n» ;
?>

The above example will output:

/www/htdocs/inc lib.inc.php php lib.inc

Example #2 pathinfo() example showing difference between null and no extension

$path_parts = pathinfo ( ‘/path/emptyextension.’ );
var_dump ( $path_parts [ ‘extension’ ]);

$path_parts = pathinfo ( ‘/path/noextension’ );
var_dump ( $path_parts [ ‘extension’ ]);
?>

The above example will output something similar to:

string(0) "" Notice: Undefined index: extension in test.php on line 6 NULL

Example #3 pathinfo() example for a dot-file

The above example will output something similar to:

Array ( [dirname] => /some/path [basename] => .test [extension] => test [filename] => )

Example #4 pathinfo() example with array dereferencing

The flags parameter is not a bitmask. Only a single value may be provided. To select only a limited set of parsed values, use array destructuring like so:

[ ‘basename’ => $basename , ‘dirname’ => $dirname ] = pathinfo ( ‘/www/htdocs/inc/lib.inc.php’ );
Читайте также:  Calling functions classes php

var_dump ( $basename , $dirname );
?>

The above example will output something similar to:

string(11) "lib.inc.php" string(15) "/www/htdocs/inc"

See Also

  • dirname() — Returns a parent directory’s path
  • basename() — Returns trailing name component of path
  • parse_url() — Parse a URL and return its components
  • realpath() — Returns canonicalized absolute pathname

Источник

PHP pathinfo

Summary: in this tutorial, you will learn how to use the PHP pathinfo() function to get the information on a file path.

Introduction to the PHP pathinfo() function

The PHP pathinfo() function accepts a file path and returns its components:

pathinfo ( string $path , int $flags = PATHINFO_ALL ) : array|stringCode language: PHP (php)

The pathinfo() function has two parameters:

  • $path is the file path from which you want to get the information.
  • $flags parameter specifies the part element to return.

The following table shows the valid flag values:

Flag Meaning
PATHINFO_DIRNAME Return the directory name
PATHINFO_BASENAME Return the base name
PATHINFO_EXTENSION Return the file extension
PATHINFO_FILENAME Return the file name (without the extension)

If you don’t pass the $flag argument, the pathinfo() function will return all components of a file path.

PHP pathinfo() function examples

Let’s take some examples of using the pathinfo() function.

1) Using the pathinfo() function to get all components of a file path

The following example uses the pathinfo() function to get the components of a file path:

 $path = 'htdocs/phptutorial/index.php'; $parts = pathinfo($path); print_r($parts);Code language: HTML, XML (xml)
Array ( [dirname] => htdocs/phptutorial [basename] => index.php [extension] => php [filename] => index )Code language: PHP (php)

2) Using the pathinfo() function to get only a specific component of a file path

The following example uses the pathinfo() function get the basename of a file path:

 $path = 'htdocs/phptutorial/index.php'; $basename = pathinfo($path, PATHINFO_BASENAME); echo $basename;Code language: HTML, XML (xml)
index.phpCode language: CSS (css)

3) Using the pathinfo() function to get the path components of a dot-file path

The following example uses the pathinfo() function to get components of the path of a dot-file:

 $path = '/htdocs/phptutorial/.gitignore'; $parts = pathinfo($path); print_r($parts);Code language: HTML, XML (xml)
Array ( [dirname] => /htdocs/phptutorial [basename] => .gitignore [extension] => gitignore [filename] => )Code language: PHP (php)

Summary

  • Use the PHP pathinfo() function to get the components of a file path including dirname, basename, filename, and extesion.

Источник

pathinfo

pathinfo() возвращает информацию о path в виде ассоциативного массива или строки в зависимости от options .

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

Если указан, то задает для возврата отдельный элемент: один из следующих PATHINFO_DIRNAME , PATHINFO_BASENAME , PATHINFO_EXTENSION и PATHINFO_FILENAME .

Если options не указан, то возвращаются все доступные элементы.

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

Если параметр options не передан, то возвращаемый ассоциативный массив ( array ) будет содержать следующие элементы: dirname, basename, extension (если есть) и filename.

Замечание:

Если path содержит больше одного расширения, то PATHINFO_EXTENSION возвращает только последнее и PATHINFO_FILENAME отрезает только последнее расширение. (смотрите пример ниже).

Замечание:

Если path не содержит расширения, то не будет возвращен элемент extension (см. ниже второй пример).

Если указан параметр options , будет возвращена строка ( string ), содержащая указанный элемент.

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

Версия Описание
5.2.0 Добавлена константа PATHINFO_FILENAME .

Примеры

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

$path_parts = pathinfo ( ‘/www/htdocs/inc/lib.inc.php’ );

echo $path_parts [ ‘dirname’ ], «\n» ;
echo $path_parts [ ‘basename’ ], «\n» ;
echo $path_parts [ ‘extension’ ], «\n» ;
echo $path_parts [ ‘filename’ ], «\n» ; // начиная с PHP 5.2.0
?>

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

/www/htdocs/inc lib.inc.php php lib.inc

Пример #2 Пример с pathinfo() , показывающий разницу между null и отсутствием расширения.

$path_parts = pathinfo ( ‘/path/emptyextension.’ );
var_dump ( $path_parts [ ‘extension’ ]);

$path_parts = pathinfo ( ‘/path/noextension’ );
var_dump ( $path_parts [ ‘extension’ ]);
?>

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

string(0) "" Notice: Undefined index: extension in test.php on line 6 Notice: Undefined index: extension in test.php on line 6 NULL

Примечания

Замечание:

Подробнее о получении информации о текущем пути, обратитесь к секции » Предопределенные зарезервированные переменные».

Замечание:

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

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

  • dirname() — Возвращает имя родительского каталога из указанного пути
  • basename() — Возвращает последний компонент имени из указанного пути
  • parse_url() — Разбирает URL и возвращает его компоненты
  • realpath() — Возвращает канонизированный абсолютный путь к файлу

Источник

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