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 中的路徑部分。
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
)
這使得我們能夠方便地獲取文件名和擴展名,或者所在的目錄路徑。
下面是一個結合parse_url和pathinfo的示例,演示如何提取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
parse_url用於解析URL,提取協議、主機、路徑、查詢等組成部分。
pathinfo用於解析文件路徑,提取目錄、文件名、擴展名等信息。
結合使用可以方便地分析URL 中的路徑和文件結構,適合進行路徑判斷、文件處理、路由解析等場景。
掌握這兩個函數,可以大幅提升你對URL 和路徑處理的效率與準確性。