當前位置: 首頁> 最新文章列表> 使用parse_url + pathinfo 分析URL 文件結構

使用parse_url + pathinfo 分析URL 文件結構

gitbox 2025-05-26

parse_url是PHP 內置的函數,用於解析URL 並返回其組成部分,如協議、主機名、路徑、查詢字符串等。

 $url = "https://gitbox.net/path/to/file.php?query=123";

$parsedUrl = parse_url($url);
print_r($parsedUrl);

輸出結果會是一個關聯數組:

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /path/to/file.php
    [query] => query=123
)

通過parse_url ,我們可以輕鬆獲得URL 中的路徑部分。

2. pathinfo函數介紹

pathinfo是用於解析文件路徑信息的函數,它返回文件的目錄名、文件名和擴展名等信息。

繼續上面的例子,我們可以這樣用:

 $path = $parsedUrl['path']; // /path/to/file.php

$fileInfo = pathinfo($path);
print_r($fileInfo);

輸出:

 Array
(
    [dirname] => /path/to
    [basename] => file.php
    [extension] => php
    [filename] => file
)

這使得我們能夠方便地獲取文件名和擴展名,或者所在的目錄路徑。

3. 綜合示例

下面是一個結合parse_urlpathinfo的示例,演示如何提取URL 的路徑和文件信息:

 <?php

$url = "https://gitbox.net/path/to/file.php?query=123";

// 解析URL
$parsedUrl = parse_url($url);

// 取出路徑部分
$path = isset($parsedUrl['path']) ? $parsedUrl['path'] : '';

// 使用pathinfo解析路徑
$fileInfo = pathinfo($path);

// 輸出結果
echo "完整路徑: " . $path . PHP_EOL;
echo "目錄名: " . ($fileInfo['dirname'] ?? '') . PHP_EOL;
echo "文件名: " . ($fileInfo['basename'] ?? '') . PHP_EOL;
echo "擴展名: " . ($fileInfo['extension'] ?? '') . PHP_EOL;
echo "不带擴展名的文件名: " . ($fileInfo['filename'] ?? '') . PHP_EOL;

運行結果:

 完整路徑: /path/to/file.php
目錄名: /path/to
文件名: file.php
擴展名: php
不带擴展名的文件名: file

4. 小結

  • parse_url用於解析URL,提取協議、主機、路徑、查詢等組成部分。

  • pathinfo用於解析文件路徑,提取目錄、文件名、擴展名等信息。

  • 結合使用可以方便地分析URL 中的路徑和文件結構,適合進行路徑判斷、文件處理、路由解析等場景。

掌握這兩個函數,可以大幅提升你對URL 和路徑處理的效率與準確性。