php parse_url()函数解析URL实例

标签: phpparse_url解析url   时间:2016-07-01
php parse_url函数用于解析URL的组成部分,并将这些组成部分的值存入数组中,URL解析部分包括scheme,host,port,user,pass,path,query,fragment等。本文章向大家介绍parse_url()函数解析URL的使用方法和实例。

php中一个好用的函数parse_url,特别方便用来解析URL,该函数将URL解析为一个关联数组,该关联数组包含URL中出现的各种组成部分,组成部分为:

  • scheme - 如 http
  • host
  • port
  • user
  • pass
  • path
  • query - 在问号 ? 之后
  • fragment - 在散列符号 # 之后

parse_url函数不会去验证给定 URL 的合法性,它只是将其分解为上面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。 

 

语法

array parse_url(string $url,int $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 的其中一个来获取 URL 中指定的部分的 string。 (除了指定为 PHP_URL_PORT 后,将返回一个 integer 的值)。

实例

<?php
$url = "http://blog.xxx.com:8080/index.php?name=wxp&id=2"; 
$parts = parse_url($url); 
print_r($parts);
?>

在线运行

运行结果为:

Array
(
    [scheme] => http
    [host] => blog.xxx.com
    [port] => 8080
    [path] => /index.php
    [query] => name=wxp&id=2
)

 

再看一个复杂一点的实例:

<?php
$url = 'http://hello:manong@jiaochen/blog?name=wxp#student';
print_r(parse_url($url));
echo "<br/><br/>";
echo parse_url($url, PHP_URL_PATH);
?>

在线运行

运行结果如下:

Array
(
    [scheme] => http
    [host] => jiaochen
    [user] => hello
    [pass] => manong
    [path] => /blog
    [query] => name=wxp
    [fragment] => student
)

/blog

从这个代码可以看出,我们可以设置第二个参数来获取URL中的各个部分。第二个参数的值可以为:

  • PHP_URL_SCHEME
  • PHP_URL_HOST
  • PHP_URL_PORT
  • PHP_URL_USER
  • PHP_URL_PASS
  • PHP_URL_PATH
  • PHP_URL_QUERY
  • PHP_URL_FRAGMENT

原文地址:http://www.manongjc.com/article/1117.html