色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php pathinfo原理

PHP中的pathinfo函數(shù)是一個(gè)非常有用的函數(shù),它可以方便地把一個(gè)路徑解析成一個(gè)關(guān)聯(lián)數(shù)組,其中包含了路徑中的文件名、目錄名和擴(kuò)展名等各個(gè)部分。這個(gè)函數(shù)在一些web開(kāi)發(fā)中尤其常用,比如在上傳文件時(shí),我們需要獲取上傳文件的文件名和擴(kuò)展名等信息。下面,我們來(lái)看看pathinfo函數(shù)的工作原理。

首先,我們來(lái)看一下pathinfo函數(shù)的基本用法:

$path = '/var/www/html/index.php';
$info = pathinfo($path);
print_r($info);

上面的代碼將會(huì)輸出如下結(jié)果:

Array
(
[dirname] => /var/www/html
[basename] => index.php
[extension] => php
[filename] => index
)

從上面的結(jié)果可以看出,pathinfo函數(shù)返回的是一個(gè)關(guān)聯(lián)數(shù)組,其中包含了路徑中的各個(gè)部分。下面我們來(lái)看看這個(gè)函數(shù)的具體實(shí)現(xiàn)。

pathinfo函數(shù)的實(shí)現(xiàn)原理非常簡(jiǎn)單,其實(shí)就是對(duì)字符串進(jìn)行分割和匹配。具體來(lái)說(shuō),它會(huì)先檢查傳入的$path字符串是否以“/”結(jié)尾,如果不是,則在末尾加上一個(gè)“/”,然后再對(duì)其進(jìn)行分割。這個(gè)分割過(guò)程主要有兩個(gè)步驟:

// 檢查路徑是否以“/”結(jié)尾
if (substr($path, -1) != '/') {
$path .= '/';
}
// 分割路徑
$parts = explode('/', $path);

這里我們用一個(gè)例子來(lái)說(shuō)明分割的過(guò)程。假設(shè)$path為“/var/www/html/index.php”,則分割后的結(jié)果是這樣的:

Array
(
[0] => 
[1] => var
[2] => www
[3] => html
[4] => index.php
)

分割完成后,pathinfo函數(shù)會(huì)根據(jù)數(shù)組$parts中的最后一個(gè)元素來(lái)確定文件名、擴(kuò)展名和basename等信息。具體來(lái)說(shuō),它會(huì)根據(jù)最后一個(gè)元素中的“.”來(lái)分割文件名和擴(kuò)展名。

// 獲取basename和extension
$filename = array_pop($parts);
$basename = substr($filename, 0, strrpos($filename, '.'));
$extension = substr($filename, strrpos($filename, '.') + 1);

這里的array_pop函數(shù)是用來(lái)獲取$parts數(shù)組中的最后一個(gè)元素的,而strrpos函數(shù)則是用來(lái)獲取最后一個(gè)“.”的位置。這樣,我們就可以得到文件名、擴(kuò)展名和basename等信息了。

最后,我們來(lái)看一下pathinfo函數(shù)的一些參數(shù)。pathinfo函數(shù)可以接受一個(gè)可選的第二個(gè)參數(shù)$path_parts,它是一個(gè)常量數(shù)組,其用來(lái)指定返回的值。這個(gè)數(shù)組中可以有以下三個(gè)元素:

  • PATHINFO_DIRNAME:目錄名部分
  • PATHINFO_BASENAME:文件名部分
  • PATHINFO_EXTENSION:擴(kuò)展名部分
  • PATHINFO_FILENAME:不包含擴(kuò)展名的文件名部分

例如,如果我們只需要獲取文件名和擴(kuò)展名,可以這樣使用pathinfo函數(shù):

$info = pathinfo($path, PATHINFO_BASENAME | PATHINFO_EXTENSION);

這樣,我們就只會(huì)得到文件名和擴(kuò)展名兩個(gè)部分了。

總之,pathinfo函數(shù)是一個(gè)非常有用的函數(shù),它可以方便地把一個(gè)路徑解析成一個(gè)關(guān)聯(lián)數(shù)組,其中包含了路徑中的文件名、目錄名和擴(kuò)展名等各個(gè)部分。其實(shí)現(xiàn)原理也比較簡(jiǎn)單,只需要一些基本的字符串分割和匹配即可。當(dāng)然,pathinfo函數(shù)還有很多高級(jí)用法,具體可以參考PHP官方文檔。