在上一篇文章《php檔案操作之回傳檔案所在的位置資訊(絕對地址)》中,我們了解取得目前檔案覺得路徑的4種方法。這次我們繼續php檔案操作系列的學習,來聊聊怎麼取得指定路徑或目前檔案的檔案名稱(目錄名稱),有興趣的朋友可以學習了解一下~
本文的主要內容就是: 「取得檔案/目錄的名稱部分」。可以是傳回目前檔案的檔案名,也可以是傳回指定檔案URL的檔案名稱。
一:取得檔案的名稱部分
#1、利用預設變數 $_SERVER
--目前檔案的檔案名稱
在上文中,我們就介紹了$_SERVER是一個包含伺服器和執行環境資訊的數組,其中一個資訊就是「路徑(path)」。
我們可以使用$_SERVER['PHP_SELF']
來取得目前執行腳本的檔名,不過在檔名前會有一個斜線「/」
<?php header("content-type:text/html;charset=utf-8"); echo "当前文件的文件名: ".$_SERVER['PHP_SELF']; ?>
輸出結果為:
当前文件的文件名: /demo.php
這樣的效果,使用$_SERVER['SCRIPT_NAME']
也可以實作
echo "当前文件的文件名: ".$_SERVER['SCRIPT_NAME'];
輸出結果和上面一樣。
2、使用basename() 函數--指定檔案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() 函數來處理一下
<?php header("content-type:text/html;charset=utf-8"); echo "当前文件的文件名: ".basename($_SERVER['PHP_SELF']); ?>
輸出結果為:
当前文件的文件名: demo.php
3、使用pathinfo() 函數--指定檔案URL的檔案名稱
pathinfo() 函數能以陣列的形式傳回關於檔案路徑的信息,各數組元素及其包含的資訊如下:
[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:\wamp\www
2、使用 dirname() 函數--指定檔案URL的目錄名稱
dirname($path)
函數可以返迴路徑$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影片教學
#以上是php檔案操作之提取檔案/目錄的名稱的詳細內容。更多資訊請關注PHP中文網其他相關文章!