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

PHP 圖片網址解析工具:提取基礎 URL、路徑、檔名

     編輯:PHP 綜合知識

針對圖片網址(含完整 URL 與相對路徑)進行解析,提取基礎域名、目錄路徑、檔名等結構化資訊,適用於採集程式、圖片處理管線等場景。

核心函式:url_set_value()

測試範例與輸出

$imgurl      = 'https://files.jb51.net/file_images/article/201408/201408232212306.png';
$imgurl_dir  = '/img/2014/07/02/14520384.gif';

var_dump(url_set_value($imgurl));
var_dump(url_set_value($imgurl_dir));

輸出結果

// 完整 URL
array(4) {
  ["base_url"]=> string(14) "files.jb51.net"
  ["img_dir_path"]=> string(27) "/file_images/article/201408"
  ["img_path"]=> string(19) "201408232212306.png"
  ["img_ful_path"]=> string(46) "/file_images/article/201408201408232212306.png"
}

// 相對路徑
array(3) {
  ["img_dir_path"]=> string(15) "/img/2014/07/02"
  ["img_path"]=> string(12) "14520384.gif"
  ["img_ful_path"]=> string(27) "/img/2014/07/0214520384.gif"
}

改進建議:使用 parse_url() + pathinfo()

原版手動切割字串較脆弱,建議改用 PHP 內建函式:

function parse_image_url($url) {
    $parsed = parse_url($url);
    $path = $parsed['path'] ?? $url; // 相對路徑無 scheme,parse_url 會失敗
    
    // 若 parse_url 失敗(相對路徑),直接用 pathinfo
    if (!isset($parsed['host'])) {
        return [
            'base_url'     => '',
            'img_dir_path' => dirname($path),
            'img_path'     => basename($path),
            'img_ful_path' => $path,
        ];
    }
    
    return [
        'base_url'     => $parsed['host'],
        'img_dir_path' => dirname($path),
        'img_path'     => basename($path),
        'img_ful_path' => $path,
    ];
}

內建函式處理邊界情況(查詢字串、片段識別碼、Windows 路徑分隔符)更健全,建議生產環境採用。

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