php獲取路徑、目錄或文件名稱,我們經常會使用到dirname()、basename()、pathinfo()這三個函數,本文章向大家詳細介紹這三個函數的區別以及使用實例,需要的朋友可以參考一下。
dirname()函數
string dirname ( string $path )
php dirname函數獲取給定文件路徑中的目錄部分,參數$path是一個文件路徑的字符串
dirname()函數經常與魔術變量__FILE__一起使用,魔術變量__FILE__表示當前運行文件的完整路徑和文件名。
dirname(dirname(__FILE__));得到的是文件上一層目錄名
dirname(__FILE__);得到的是文件所在層目錄名
如:
<?php /* 作者:碼農教程 網站地址: http://www.manongjc.com */ echo dirname("c:/testweb/home.php")."<br/>"; echo dirname("/testweb/home.php")."<br/><br/>"; echo __FILE__ ."<br/>"; echo dirname(__FILE__)."<br/>"; echo dirname(dirname(__FILE__)); ?>
運行結果為:
c:/testweb /testweb E:\wamp\www\test.php E:\wamp\www E:\wamp
basename()函數
string basename ( string $path [, string $suffix ] )
php basename()函數獲取路徑中的文件名部分,該函數與dirname()正好相反(dirname獲取路徑中的目錄部分)。
第一個參數$path表示一個包含有指向一個文件的全路徑的字符串,第二個參數表示如果文件名是以suffix結束的,那這一部分也會被去掉。
實例如下:
<?php /* 作者:碼農教程 http://www.manongjc.com/article/30.html */ var_dump(basename("/etc/sudoers.d", ".d")); var_dump(basename("/etc/passwd")); var_dump(basename("/etc/")); var_dump(basename(".")); var_dump(basename("/")); ?>
運行結果:
string(7) "sudoers" string(6) "passwd" string(3) "etc" string(1) "." string(0) ""
pathinfo()函數
php pathinfo函數用於解析路徑,將路徑解析為一個數組,數組包括目錄名、完整的文件名、文件擴展名和文件名(不包括文件後綴)四個值,並且這四個值的鍵名分別為dirname、basename、extension和filename,我們可以通過這四個鍵名來獲取目錄名、完整的文件名、文件擴展名和文件名的值。
語法:
mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
參數:
實例:
<? /* 作者:碼農教程 http://www.manongjc.com/article/30.html */ $test = pathinfo("http://localhost/index.php"); print_r($test); ?>
結果如下
Array ( [dirname] => http://localhost //url的路徑 [basename] => index.php //完整文件名 [extension] => php //文件名後綴 [filename] => index //文件名 )