PHP - URL parse_url() 函数



PHP URL parse_url() 函数用于解析 URL 并返回其组成部分。解析 URL 后,此方法提供一个关联数组,其中包含 URL 的所有不同部分。数组元素的值不会从 URL 解码。

此函数只是将给定的 URL 分解成下面给出的部分,它并非用于验证 URL 本身。虽然 parse_url() 会尽力正确解析 URL,但也会接受部分和不正确的 URL。

语法

以下是 PHP URL parse_url() 函数的语法:

mixed parse_url(string $url, int $component = -1)

参数

以下是 parse_url() 函数的参数:

  • $url − 要解析的 URL。

  • $component − 指定 PHP_URL_SCHEME、PHP_URL_HOST、PHP_URL_PORT、PHP_URL_USER、PHP_URL_PASS、PHP_URL_PATH、PHP_URL_QUERY 或 PHP_URL_FRAGMENT 之一,以获取特定 URL 组成部分作为字符串。如果没有给出,则返回所有组成部分的数组。

返回值

如果未指定任何组成部分,则此函数基本上返回一个关联数组;如果给出了组成部分,则返回一个字符串(端口为整数)。失败则返回 FALSE。

PHP 版本

parse_url() 方法最初作为 PHP 4 的核心部分引入,并且与 PHP 5、PHP 7、PHP 8 兼容。

示例 1

这是 PHP URL parse_url() 函数的基本示例,用于将完整的 URL 解析为其组成部分。结果将是一个包含方案、主机、路径和查询等部分的数组。

<?php
   // Mention the URL here
   $url = "https://www.tutorix.com:8080/path/to/page?name=ferret&color=purple#section2";
   $parsed_url = parse_url($url);
   print_r($parsed_url);
?>

输出

以上代码将产生类似于这样的结果:

Array
(
    [scheme] => https
    [host] => www.tutorix.com
    [port] => 8080
    [path] => /path/to/page
    [query] => name=ferret&color=purple
    [fragment] => section2
)

示例 2

此示例演示如何使用 parse_url() 方法从 URL 中检索协议(方案)。通常,方案是“http”或“https”。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.com";
   $scheme = parse_url($url, PHP_URL_SCHEME);
   echo $scheme; 
?> 

输出

运行上述程序后,将生成以下输出:

https

示例 3

此示例的目的是使用 parse_url() 函数从 URL 中提取路径。路径指的是域名中的特定页面或目录。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.com/html/index.htm";
   $path = parse_url($url, PHP_URL_PATH);
   echo $path; 
?> 

输出

这将创建以下输出:

/html/index.htm

示例 4

在这里,我们演示如何使用 parse_url() 函数获取 URL 的主机部分。主机就是域名,例如“www.tutorialspoint.com”。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.com";
   $host = parse_url($url, PHP_URL_HOST);
   echo $host; // Output: www.example.com
?> 

输出

执行上述程序后,将产生以下输出:

www.tutorialspoint.com

示例 5

在此代码中,我们以 URL 作为输入并提取其查询字符串。查询字符串包含发送到网页的参数“name=tomato&color=red”和其他参数。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.com/page?name=tomato&color=red";
   $query = parse_url($url, PHP_URL_QUERY);
   echo $query; 
?> 

输出

执行后将产生以下输出:

name=tomato&color=red
php_function_reference.htm
广告