PHP URL函数

PHP parse_url() 函数解析 URL 并返回一个包含其各个组件的关联数组。

语法

parse_url(url, component) 

参数

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),以字符串(如果是 PHP_URL_PORT,则为 int)形式检索特定 URL 组件。

返回值

  • 如果参数是格式错误的URL,则返回false。
  • 如果参数component省略,返回一个关联数组。数组中至少存在一个元素。该数组中的潜在键有:
    • scheme - 例如http
    • host
    • port
    • user
    • pass
    • path
    • query-问号之后?
    • fragment - 井号之后#
  • 如果指定了组件参数,则函数返回一个字符串(或一个 int,在 PHP_URL_PORT 的情况下)而不是数组。如果给定的 URL 中不存在请求的组件,则返回 null。
注意:组件中的控制字符是替换为下划线 (_)。

示例:parse_url()示例

下面的示例显示了parse_url()函数的用法。

<?php
$url = 'https://www.yxjc123.com/index.php?page=PHP#examples';

//解析url
print_r(parse_url($url));

echo "\n";

var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?> 

上述代码的输出将是:

Array
(
    [scheme] => https
    [host] => www.yxjc123.com
    [path] => /index.php
    [query] => page=PHP
    [fragment] => examples
)

string(5) "https"
NULL
NULL
string(25) "www.yxjc123.com"
NULL
string(10) "/index.php"
string(8) "page=PHP"
string(8) "examples" 

示例:缺少http/https的 parse_url() 示例

考虑下面的示例,其中URL 中缺少参数http/https协议。

<?php
$url = '//www.yxjc123.com/index.php?page=PHP#examples';

//解析url
print_r(parse_url($url));
?> 

上述代码的输出将为:

Array
(
    [host] => www.yxjc123.com
    [path] => /index.php
    [query] => page=PHP
    [fragment] => examples
)