📜  从 php 中的 url 获取文件名(1)

📅  最后修改于: 2023-12-03 15:21:53.441000             🧑  作者: Mango

从 PHP 中的 URL 获取文件名

在 PHP 中获取 URL 中的文件名是一个常见的任务。这种情况下,开发人员需要提取文件名并进行处理。 本文将介绍如何从 PHP 中的 URL 中获取文件名的几种方法。

1. 使用basename()函数

PHP内置的basename()函数用于删除文件的目录部分并返回文件名。此函数需要将整个URL或文件名作为输入,并返回一个字符串,其中包含文件名。

$url = "https://example.com/path/to/your-file.txt";
$filename = basename($url);

// $filename 为 'your-file.txt'

请注意,如果URL不包含文件名,则basename()函数将返回目录参数本身,而不是默认文件名“index.php”。因此,在使用此函数时应格外小心。

2. 使用parse_url()函数

使用parse_url()函数解析URL,可以返回一个可操作的数组。其中包含主机名称、协议、端口号以及可以被basename()函数解析为文件名的路径。

$url = "https://example.com/path/to/your-file.txt";
$path_parts = parse_url($url);

// $path_parts 为:
// array(
//     'scheme' => 'https',
//     'host' => 'example.com',
//     'path' => '/path/to/your-file.txt'
// )

$filename = basename($path_parts['path']);

// $filename 为 'your-file.txt'

这种方法更加可靠,因为它还提供了其他有用的URL元素。

3. 使用pathinfo()函数

使用pathinfo()函数也可以获取URL中的文件名。此函数接受一个参数字符串并返回一个关联数组,其中包含文件路径、文件名、文件扩展名等信息。

$url = "https://example.com/path/to/your-file.txt";
$path_parts = pathinfo($url);

// $path_parts 为:
// array(
//     'dirname' => 'https://example.com/path/to', 
//     'basename' => 'your-file.txt', 
//     'extension' => 'txt', 
//     'filename' => 'your-file'
// )

$filename = $path_parts['basename'];

// $filename 为 'your-file.txt'

这种方法比parse_url()函数返回的数组更详细,也更加灵活。

结论

以上三种方法都可以在PHP中提取URL的文件名。它们各有优缺点,因此选择使用哪种方法取决于具体情况。 但是,使用basename()、parse_url()或pathinfo()函数,可以轻松地从PHP中的URL中获取文件名。