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

