php檔案操作之提取檔案/目錄的名稱

johnychen發表於2021-09-11
在上一篇文章《》中,我們瞭解獲取當前檔案覺得路徑的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);
?>

輸出結果為:

1.png

我們利用$arr['basename']就可以獲取檔名,如果想要獲取不包含字尾的檔名,則可使用$arr['filename']

echo "檔名:".$arr['basename'];
echo "<br>不包含字尾的檔名:".$arr['filename'];

輸出結果為:

2.png

利用$arr['extension']還可以獲取副檔名

echo "副檔名:".$arr['extension'];

4.png

二:獲取目錄的名稱部分

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() 函式--指定檔案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中文網其它相關文章!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4301/viewspace-2827405/,如需轉載,請註明出處,否則將追究法律責任。

相關文章