php路徑目錄解析函數dirname basename pathinfo區別及實例


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 ] )

參數:

  • path 要解析的路徑。
  • options 如果指定了,將會返回指定元素;它們包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION 或 PATHINFO_FILENAME。 如果沒有指定 options 默認是返回全部的單元。

實例:

<?
/* 作者:碼農教程 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 //文件名
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM