PHP.mk документација

pathinfo

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.pathinfo.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.pathinfo.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
pathinfo

Референца за `function.pathinfo.php` со подобрена типографија и навигација.

function.pathinfo.php

pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfoВраќа информации за патеката до датотека

= NULL

pathinfo(string $path, int $flags = PATHINFO_ALL): array|string

pathinfo() враќа информации за path: или асоцијативен низ или стринг, во зависност од flags.

Забелешка:

За информации за добивање на тековните информации за патеката, прочитајте го делот за претходно дефинирани резервирани променливи.

Забелешка:

pathinfo() работи наивно на влезната низа и не е свесен за вистинскиот систем на датотеки, или компоненти на патеката како што се "..".

Забелешка:

Само на системи Windows, \ карактерот ќе се толкува како разделувач на директориуми. На други системи ќе се третира како кој било друг карактер.

Безбедност: стандардниот сет на знаци

pathinfo() е свесен за локалот, така што за да парсира патека што содржи повеќебајтни карактери правилно, мора да се постави соодветниот локал користејќи setlocale() function.

Параметри

path

Патеката што треба да се парсира.

flags

Ако е присутен, специфицира специфичен елемент што треба да се врати; еден од PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION or PATHINFO_FILENAME.

Враќа flags не е специфициран, враќа сите достапни елементи.

Вратени вредности

Ако flags параметарот не е предаден, асоцијативен array што ги содржи следните елементи се враќа: dirname, basename, extension (ако има), и filename.

Забелешка:

Ако path има повеќе од еден екстензија, PATHINFO_EXTENSION враќа само последната и PATHINFO_FILENAME само ја отстранува последната. (види првиот пример подолу).

Забелешка:

Ако path нема екстензија, нема extension елементот ќе биде вратен (види вториот пример подолу).

Забелешка:

Ако basename од path започнува со точка, следните знаци се толкуваат како extensionФункциите filename е празно (види го третиот пример подолу).

Враќа flags е присутен, враќа string што го содржи бараниот елемент.

Примери

Пример #1 pathinfo() Пример

<?php
$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";
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

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

Пример #2 pathinfo() пример што покажува разлика помеѓу null и нема екстензија

<?php
$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
NULL

Пример #3 pathinfo() пример за датотека со точка

<?php
print_r
(pathinfo('/some/path/.test'));
?>

Горниот пример ќе прикаже нешто слично на:

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

Пример #4 pathinfo() пример со дереференцирање на низа

На flags параметарот не е битно маскирање. Може да се обезбеди само една вредност. За да изберете само ограничен сет на анализирани вредности, користете деструктурирање на низа вака:

<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');

var_dump($basename, $dirname);
?>

Горниот пример ќе прикаже нешто слично на:

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

Види Исто така

  • dirname() - Враќа патека на родителска директорија
  • basename() - Враќа последна компонента на името на патеката
  • parse_url() - Парсирај URL и врати ги неговите компоненти
  • realpath() - Враќа последна компонента на името на патеката

Белешки од корисници 3 белешки

Пјетро Барико
пред 14 години
Use this function in place of pathinfo to make it work with UTF-8 encoded file names too

<?php
function mb_pathinfo($filepath) {
    preg_match('%^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^\.\\\\/]+?)|))[\\\\/\.]*$%im',$filepath,$m);
    if($m[1]) $ret['dirname']=$m[1];
    if($m[2]) $ret['basename']=$m[2];
    if($m[5]) $ret['extension']=$m[5];
    if($m[3]) $ret['filename']=$m[3];
    return $ret;
}
?>
urvi
3 години пред
about the path, there are one thing you should note :
On Windows, both slash (/) and backslash (\) are used as directory separator character. In other environments, it is the forward slash (/).  (this explain is from basename() function part https://www.php.net/manual/en/function.basename.php)
example:
<?php
$path = "https://urvidutta.com /a\b\c\filename.pdf";

echo pathinfo($pdfUrl, PATHINFO_BASENAME);  //get basename
//output
//on window:  result is filename.pdf
//on Linux: result is a\b\c\filename.pdf (that is may not your expect)

//so in order to get same result in different system.  i will do below first.
$path = str_replace($path, '\\', '/'); //convert '\'  to '/'
?>
n0dalus
21 години пред
If a file has more than one 'file extension' (seperated by periods), the last one will be returned.
For example:
<?php
$pathinfo = pathinfo('/dir/test.tar.gz');
echo 'Extension: '.$pathinfo['extension'];
?>
will produce:
Extension: gz

and not tar.gz
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.