程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP解析目錄路徑的3個函數總結

PHP解析目錄路徑的3個函數總結

編輯: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
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved