您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關PHP中對目錄路徑進行解析的函數有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
要描述一個文件的位置,可以使用決對路徑和相對路徑。絕對路徑是從根開始一級一級地進入各個子目錄,最后指定該文件名或目錄名。而相對目錄是從當前目錄進入某目錄,最后指定該文件名或目錄名。在系統的每個目錄下都有兩個特殊的目錄“.”和“..”,分別指示當前目錄和當前目錄的父目錄(上一級目錄)。例如:
$unixPath = “/var/www/html/index.php”; –在UNIX系統中絕對路徑,必須使用“/”作為路徑分隔符 $winPath = “C:\\Appserv\\www\\index.php”; –Windows系統的絕對路徑,默認使用“\”作為路徑分隔符 $winPath = “C:/Appserv/www/index.php”; –在Windows系統中也接受“/”作為路徑分隔符,推薦使用 $fileName1=”file.txt”; –相對路徑,當前目錄下的file.txt文件 $fileName2=”javascript/common.js”; –相對路徑,當前目錄中javascript子目錄下的common.js文件 $fileName3=”../images/logo.gif”; –相對路徑,上一級目錄中images子目錄下的logo.gif文件
在上例中,分別列出了UNIX和Windows系統中絕對路徑和相對路徑的格式。其中在UNIX系統中必須使用正斜線“/”作為路徑分隔符,而在Windows系統中默認使用反斜線“\”作為路徑分隔符,在程序中表示還要將“\”轉義,但也接受正斜線“/”作為分隔符的寫法。為了程序可以有很好的移植性,建議都使用“/”作為文件的路徑分隔符。另外,也可以使用PHP的內置常量DIRECTORY_SEPARATOR,其值為當前操作系統的默認文件路徑分隔符。例如:
$fileName2 = “javascript”.DIRECTORY_SEPARATOR.”common.js”; –Unix為“/”,Windows為“\”
將目錄路徑中各個屬性分離開通常很有用,如末尾的擴展名、目錄部分和基本名。可以通過PHP的系統函數basename()、dirname()和pathinfo()函數完成這些任務。
①函數basename()
函數basename()返回路徑中的文件名部分。該函數的原型如下所示:
string basename(string path[,string suffix]) //返回路徑中的文件名部分
該函數給出一個包含其指向一個文件的全路徑的字符串,本函數返回基本的文件名。第二個參數可選參數,規定文件的擴展名。如果提供了則不會輸出這個擴展名。該函數的使用如下面的代碼所示:
<?php //包含有指向一個文件的全部路徑的字符串 $path = "/var/www/html/page.php"; //顯示帶有文件擴展名的文件名,輸出page.php echo basename($path); //顯示不帶有文件擴展名的文件名,輸出page echo basename($path,".php"); ?>
②函數dirname()
該函數恰好與basename()相反,只需要一個參數,給出一個包含有指向一個文件的全部路徑的字符串,本函數返回去掉文件名后的目錄名。該函數的使用如以下代碼所示:
<?php $path = "/var/www/html/page.php"; echo dirname($path); //返回目錄名/var/www/html echo dirname('c:/'); //返回目錄名c:/ ?>
③函數pathinfo()
函數pathinfo()返回一個關聯數組,其中包括指定路徑中的目錄名、基本名和擴展名三個部分。分別通過數組鍵dirname、basename和extension來引用。該函數的使用如下代碼所示。
<?php $path = "/var/www/html/page.php"; $path_parts = pathinfo($path); //返回包括指定路徑中的目錄名、基本名和擴展名關聯數組 echo $path_parts["dirname"]; //輸出目錄名/var/www/html echo $path_parts["basename"]; //輸出基本名page.php echo $path_parts["extension"]; //輸出擴展名.php ?>
看完上述內容,你們對PHP中對目錄路徑進行解析的函數有哪些有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。