今天给大家介绍一个php中用于url解析的函数 parse_url(),此函数可以将一个url地址处理成一个数组,并返返url中各种组成的部份。

php parse_url 函数介绍

parse_url():解析 URL 地址,并返回其组成部分。

语法:

parse_url ($url,$component)

参数:

$url:要解析的url地址,如有无效字符会使用 '_' 来替换

$component:获取 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地址

示例1:php处理一个静态的url地址

php代码:

<?php
// 这是一个url地址
$url = 'https://www.feiniaomy.com/post/541.html';
$arr = parse_url($url);
var_dump($arr);
?>

打印结果:

array(3) {
  ["scheme"]=>
  string(5) "https"
  ["host"]=>
  string(17) "www.feiniaomy.com"
  ["path"]=>
  string(14) "/post/541.html"
}

示例2:php处理一个动态的url地址

php代码:

<?php
// 这是一个url地址
$url = 'https://www.feiniaomy.com/post/?index=20&type=no';
$arr = parse_url($url);
var_dump($arr);
?>

打印结果:

array(4) {
  ["scheme"]=>
  string(5) "https"
  ["host"]=>
  string(17) "www.feiniaomy.com"
  ["path"]=>
  string(6) "/post/"
  ["query"]=>
  string(16) "index=20&type=no"
}

php 获取url地址提交的参数

parse_url() 的第二个参数设置为 PHP_URL_QUERY 的话,可以获取url 地址中,get方法提交的数据

php代码:

<?php
$url = 'https://www.feiniaomy.com/post/?index=20&type=no';
$arr = parse_url($url,PHP_URL_QUERY);
var_dump($arr);
?>

返回结果:

index=20&type=no

php 获取url地址中的主域名

parse_url() 第二个参数,如果为 PHP_URL_HOST 话,可以获取url地址中的主域名

php代码:

<?php
$url = 'https://www.feiniaomy.com/post/?index=20&type=no';
$arr = parse_url($url,PHP_URL_HOST);
var_dump($arr);
?>

运行结果:

www.feiniaomy.com

php 获取url地址的协议

parse_url() 第二个参数,如果为 PHP_URL_SCHEME,可以获取url地址的协议类型

php代码

<?php
$url = 'https://www.feiniaomy.com/post/?index=20&type=no';
$arr = parse_url($url,PHP_URL_SCHEME);
var_dump($arr);
?>

输出结果:

https