在上一篇文章《php文件操作之返回文件所在的位置信息(絕對地址)》中,我們了解獲取當前文件覺得路徑的4種方法。這次我們繼續(xù)php文件操作系列的學習,來聊聊怎么獲取指定路徑或者當前文件的文件名(目錄名),感興趣的朋友可以學習了解一下~
本文的主要內(nèi)容就是:“獲取文件/目錄的名稱部分”。可以是返回當前文件的文件名,也可以是返回指定文件URL的文件名。
一:獲取文件的名稱部分
1、利用預定義變量 $_SERVER
–當前文件的文件名
在上文中,我們就介紹了$_SERVER是一個包含服務器和執(zhí)行環(huán)境信息的數(shù)組,其中一個信息就是“路徑(path)”。
我們可以使用$_SERVER['PHP_SELF']
來獲取當前執(zhí)行腳本的文件名,不過在文件名前會有一個斜杠“/”
<?php header("content-type:text/html;charset=utf-8"); echo "當前文件的文件名: ".$_SERVER['PHP_SELF']; ?>
輸出結果為:
當前文件的文件名: /demo.php
這樣的效果,使用$_SERVER['SCRIPT_NAME']
也可以實現(xiàn)
echo "當前文件的文件名: ".$_SERVER['SCRIPT_NAME'];
輸出結果和上面一樣。
2、使用basename() 函數(shù)–指定文件URL的文件名
<?php header("content-type:text/html;charset=utf-8"); $path = "C:/wamp/www/demo.php"; echo '指定路徑$path的文件名稱: '.basename($path); ?>
輸出結果為:
指定路徑$path的文件名稱: demo.php
OK,這種的才是我們想要的文件名。上面使用預定義變量 $_SERVER 獲取的文件名也可以利用basename() 函數(shù)處理一下
<?php header("content-type:text/html;charset=utf-8"); echo "當前文件的文件名: ".basename($_SERVER['PHP_SELF']); ?>
輸出結果為:
當前文件的文件名: demo.php
3、使用 pathinfo() 函數(shù)–指定文件URL的文件名
pathinfo() 函數(shù)能以數(shù)組的形式返回關于文件路徑的信息,各數(shù)組元素及其包含的信息如下:
-
[dirname]
:目錄路徑 -
[basename]
:文件名 -
[extension]
:文件后綴名 -
[filename]
:不包含后綴的文件名
<?php $path = "C:/wamp/www/demo.php"; $arr = pathinfo($path); var_dump($arr); ?>
輸出結果為:
我們利用$arr['basename']
就可以獲取文件名,如果想要獲取不包含后綴的文件名,則可使用$arr['filename']
。
echo "文件名:".$arr['basename']; echo "<br>不包含后綴的文件名:".$arr['filename'];
輸出結果為:
利用$arr['extension']
還可以獲取文件擴展名
echo "文件擴展名:".$arr['extension'];
二:獲取目錄的名稱部分
1、使用魔術常量 __DIR__
—- 當前文件所在目錄的名稱部分。
__DIR__ 常量可獲取當前文件的絕對路徑(不包含文件名),即當前文件所在目錄的名稱部分。
例包含下面程序的PHP文件名為demo.php,完整路徑為“C:/wamp/www/demo.php
”
<?php header("content-type:text/html;charset=utf-8"); echo "當前文件的目錄名: ".__DIR__; ?>
輸出結果為:
當前文件的目錄名: C:wampwww
2、使用 dirname() 函數(shù)–指定文件URL的目錄名
dirname($path)
函數(shù)可以返回路徑$path中的目錄名稱部分。
<?php header("content-type:text/html;charset=utf-8"); $path = "C:/wamp/www/demo.php"; echo '指定路徑$path的目錄名稱: '.dirname($path); ?>
輸出結果為:
指定路徑$path的目錄名稱: C:/wamp/www
好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →php視頻教程