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 和路径处理的效率与准确性。