首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 從 URL 解析檔案名稱與副檔名的實用函數

     編輯:PHP 綜合知識

快速取得 URL 中的檔案名稱

利用正則表達式從完整網址中提取含副檔名的檔案名稱:

function retrieve($url) {
    // 匹配最後一個 / 之後、含點號的字串
    preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/', $url, $match);
    return $match[1] ?? '';
}

// 測試
echo retrieve('https://example.com/path/to/file.php?id=1'); // 輸出:file.php

獨立取得副檔名

結合 parse_url() 與字串分割,更穩健地解析副檔名:

function getExt($url) {
    $path = parse_url($url, PHP_URL_PATH); // 只取路徑部分
    $parts = explode('.', $path);
    return end($parts); // 取最後一段
}

// 測試
echo getExt('https://tools.jb51.net/abc/de/fg.php?id=1'); // 輸出:php

進階版:支援多種情境

function parseUrlFileInfo($url) {
    $path = parse_url($url, PHP_URL_PATH);
    $filename = basename($path);           // 含副檔名的完整檔名
    $extension = pathinfo($filename, PATHINFO_EXTENSION); // 純副檔名
    $basename = pathinfo($filename, PATHINFO_FILENAME);   // 不含副檔名的主檔名
    return compact('filename', 'extension', 'basename');
}

print_r(parseUrlFileInfo('https://cdn.example.com/assets/app.v2.min.js?v=123'));
/*
Array
(
    [filename] => app.v2.min.js
    [extension] => js
    [basename] => app.v2.min
)
*/

建議使用 PHP 內建 pathinfo() 與 parse_url(),比手寫正則更可靠、可讀性更高。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved