PHP解析目錄路徑的3個(gè)函數(shù)總結(jié)
要描述一個(gè)文件的位置,可以使用決對(duì)路徑和相對(duì)路徑。絕對(duì)路徑是從根開(kāi)始一級(jí)一級(jí)地進(jìn)入各個(gè)子目錄,最后指定該文件名或目錄名。而相對(duì)目錄是從當(dāng)前目錄進(jìn)入某目錄,最后指定該文件名或目錄名。在系統(tǒng)的每個(gè)目錄下都有兩個(gè)特殊的目錄“.”和“..”,分別指示當(dāng)前目錄和當(dāng)前目錄的父目錄(上一級(jí)目錄)。例如:
$unixPath = “/var/www/html/index.php”; –在UNIX系統(tǒng)中絕對(duì)路徑,必須使用“/”作為路徑分隔符
$winPath = “C:\\Appserv\\www\\index.php”; –Windows系統(tǒng)的絕對(duì)路徑,默認(rèn)使用“\”作為路徑分隔符
$winPath = “C:/Appserv/www/index.php”; –在Windows系統(tǒng)中也接受“/”作為路徑分隔符,推薦使用
$fileName1=”file.txt”; –相對(duì)路徑,當(dāng)前目錄下的file.txt文件
$fileName2=”javascript/common.js”; –相對(duì)路徑,當(dāng)前目錄中javascript子目錄下的common.js文件
$fileName3=”../images/logo.gif”; –相對(duì)路徑,上一級(jí)目錄中images子目錄下的logo.gif文件
在上例中,分別列出了UNIX和Windows系統(tǒng)中絕對(duì)路徑和相對(duì)路徑的格式。其中在UNIX系統(tǒng)中必須使用正斜線“/”作為路徑分隔符,而在Windows系統(tǒng)中默認(rèn)使用反斜線“\”作為路徑分隔符,在程序中表示還要將“\”轉(zhuǎn)義,但也接受正斜線“/”作為分隔符的寫(xiě)法。為了程序可以有很好的移植性,建議都使用“/”作為文件的路徑分隔符。另外,也可以使用PHP的內(nèi)置常量DIRECTORY_SEPARATOR,其值為當(dāng)前操作系統(tǒng)的默認(rèn)文件路徑分隔符。例如:
$fileName2 = “javascript”.DIRECTORY_SEPARATOR.”common.js”; –Unix為“/”,Windows為“\”
將目錄路徑中各個(gè)屬性分離開(kāi)通常很有用,如末尾的擴(kuò)展名、目錄部分和基本名。可以通過(guò)PHP的系統(tǒng)函數(shù)basename()、dirname()和pathinfo()函數(shù)完成這些任務(wù)。
①函數(shù)basename()
函數(shù)basename()返回路徑中的文件名部分。該函數(shù)的原型如下所示:
string basename(string path[,string suffix]) //返回路徑中的文件名部分
該函數(shù)給出一個(gè)包含其指向一個(gè)文件的全路徑的字符串,本函數(shù)返回基本的文件名。第二個(gè)參數(shù)可選參數(shù),規(guī)定文件的擴(kuò)展名。如果提供了則不會(huì)輸出這個(gè)擴(kuò)展名。該函數(shù)的使用如下面的代碼所示:
<?php
//包含有指向一個(gè)文件的全部路徑的字符串
$path = "/var/www/html/page.php";
//顯示帶有文件擴(kuò)展名的文件名,輸出page.php
echo basename($path);
//顯示不帶有文件擴(kuò)展名的文件名,輸出page
echo basename($path,".php");
?>
②函數(shù)dirname()
該函數(shù)恰好與basename()相反,只需要一個(gè)參數(shù),給出一個(gè)包含有指向一個(gè)文件的全部路徑的字符串,本函數(shù)返回去掉文件名后的目錄名。該函數(shù)的使用如以下代碼所示:
<?php
$path = "/var/www/html/page.php";
echo dirname($path); //返回目錄名/var/www/html
echo dirname('c:/'); //返回目錄名c:/
?>
③函數(shù)pathinfo()
函數(shù)pathinfo()返回一個(gè)關(guān)聯(lián)數(shù)組,其中包括指定路徑中的目錄名、基本名和擴(kuò)展名三個(gè)部分。分別通過(guò)數(shù)組鍵dirname、basename和extension來(lái)引用。該函數(shù)的使用如下代碼所示。
<?php
$path = "/var/www/html/page.php";
$path_parts = pathinfo($path); //返回包括指定路徑中的目錄名、基本名和擴(kuò)展名關(guān)聯(lián)數(shù)組
echo $path_parts["dirname"]; //輸出目錄名/var/www/html
echo $path_parts["basename"]; //輸出基本名page.php
echo $path_parts["extension"]; //輸出擴(kuò)展名.php
?>
- php中目錄操作opendir()、readdir()及scandir()用法示例
- 使用PHP函數(shù)scandir排除特定目錄
- PHP獲取當(dāng)前文件所在目錄 getcwd()函數(shù)
- php文件夾與文件目錄操作函數(shù)介紹
- php中判斷文件空目錄是否有讀寫(xiě)權(quán)限的函數(shù)代碼
- PHP使用glob函數(shù)遍歷目錄或文件夾的方法
- php file_exists 檢查文件或目錄是否存在的函數(shù)
- PHP遍歷目錄函數(shù)opendir()、readdir()、closedir()、rewinddir()總結(jié)
- PHP刪除非空目錄的函數(shù)代碼小結(jié)
- PHP目錄函數(shù)實(shí)現(xiàn)創(chuàng)建、讀取目錄教程實(shí)例
- php使用scandir()函數(shù)掃描指定目錄下所有文件示例
相關(guān)文章
PHP獲取數(shù)組表示的路徑方法分析【數(shù)組轉(zhuǎn)字符串】
這篇文章主要介紹了PHP獲取數(shù)組表示的路徑,結(jié)合實(shí)例形式對(duì)比分析了數(shù)組轉(zhuǎn)字符串的實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09
paypal即時(shí)到賬php實(shí)現(xiàn)代碼
paypal即時(shí)到賬php實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-11-11
PHP基于反射機(jī)制實(shí)現(xiàn)自動(dòng)依賴注入的方法詳解
這篇文章主要介紹了PHP基于反射機(jī)制實(shí)現(xiàn)自動(dòng)依賴注入的方法,結(jié)合實(shí)例形式分析了php使用反射實(shí)現(xiàn)自動(dòng)依賴注入的步驟、原理與相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
php實(shí)現(xiàn)自運(yùn)行的實(shí)例詳解
在本篇文章里小編給大家整理的是一篇關(guān)于php實(shí)現(xiàn)自運(yùn)行的實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-07-07
PHP寫(xiě)的求多項(xiàng)式導(dǎo)數(shù)的函數(shù)代碼
PHP寫(xiě)的求多項(xiàng)式導(dǎo)數(shù)的函數(shù)代碼,需要的朋友可以參考下2012-07-07
PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能
有時(shí)候我們會(huì)需要使用PHP導(dǎo)出pdf。這篇文章主要是記錄一下laravel實(shí)現(xiàn)導(dǎo)出PDF的兩種方式。文中的示例代碼講解詳細(xì),需要的可以參考一下2022-10-10
PHP中的print_r 與 var_dump 輸出數(shù)組
下面小編就為大家?guī)?lái)一篇PHP中的print_r 與 var_dump 輸出數(shù)組。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考2016-06-06

