- Функция pathinfo в PHP, описание и примеры
- Параметры функции pathinfo
- Элементы возвращаемого массива функции pathinfo
- Пример использования функции pathinfo
- pathinfo
- Parameters
- Return Values
- Examples
- See Also
- PHP pathinfo
- Introduction to the PHP pathinfo() function
- PHP pathinfo() function examples
- 1) Using the pathinfo() function to get all components of a file path
- 2) Using the pathinfo() function to get only a specific component of a file path
- 3) Using the pathinfo() function to get the path components of a dot-file path
- Summary
- pathinfo
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
Функция 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’ );
?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’ ]);
?php
$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’ );?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|string
Code 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.php
Code 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’ );
?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’ ]);
?php
$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() — Возвращает канонизированный абсолютный путь к файлу