解析url函数parse_url()

(PHP 4, PHP 5, PHP 7)

parse_url — 解析 URL,返回其组成部分

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

本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。

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

参数

url:要解析的 URL。无效字符将使用 _ 来替换。

component:

指定 PHP_URL_SCHEME、 PHP_URL_HOST、 PHP_URL_PORT、 PHP_URL_USER、 PHP_URL_PASS、 PHP_URL_PATHPHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一个来获取 URL 中指定的部分的 string。 (除了指定为PHP_URL_PORT 后,将返回一个 integer 的值)。

返回值

对严重不合格的 URL,parse_url() 可能会返回 FALSE

如果省略了 component 参数,将返回一个关联数组 array,在目前至少会有一个元素在该数组中。数组中可能的键有以下几种:

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

如果指定了 component 参数, parse_url() 返回一个 string (或在指定为 PHP_URL_PORT 时返回一个 integer)而不是array。如果 URL 中指定的组成部分不存在,将会返回 NULL

Example #1 parse_url() 例子

<?php
$url = ‘http://username:[email protected]/path?arg=value#anchor‘;

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);
?>

返回结果:

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path

Example #2 parse_url() 解析丢失协议的例子

<?php
$url = ‘//www.example.com/path?googleguy=googley‘;

// 在 5.4.7 之前这会输出路径 "//www.example.com/path"
var_dump(parse_url($url));
?>

以上例程会输出:

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "googleguy=googley"
}

注释

Note: 本函数不能用于相对 URL。

Note: parse_url() 是专门用来解析 URL 而不是 URI 的。不过为遵从 PHP 向后兼容的需要有个例外,对 file:// 协议允许三个斜线(file:///...)。其它任何协议都不能这样。

时间: 2024-10-11 01:46:13

解析url函数parse_url()的相关文章

写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名?pathinfo文件路径&amp; parse_url解析url &amp; basename路径中文件名

例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php 方案1 <?php function getExt($url){ $arr = parse_url($url); $file = basename($arr['path']); $ext = explode(".",$file); return $ext[1]; } echo getExt("http://www.sina.com.cn/abc/d

URL处理几个关键的函数parse_url、parse_str与http_build_query

parse_url() 该函数可以解析 URL,返回其组成部分.它的用法如下: array parse_url(string $url) 此函数返回一个关联数组,包含现有 URL 的各种组成部分.如果缺少了其中的某一个,则不会为这个组成部分创建数组项.组成部分为: scheme - 如 http host - 如 localhost port - 如 80 user pass path - 如 /parse_str.php query - 在问号 ? 之后  如 id=1&category=ph

php使用http_build_query,parse_url,parse_str创建与解析url详解

1.http_build_query string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] ) 使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串. 参数: query_data 可以是数组或包含属性的对象. 一个query_data数组可以是简单的一维结

PHP的学习--解析URL

PHP中有两个方法可以用来解析URL,分别是parse_url和parse_str. parse_url 解析 URL,返回其组成部分 mixed parse_url ( string $url [, int $component = -1 ] ) 本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分. 本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分.不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析. 参数 url

Django url()函数详解

url()函数看起来的格式象:url(r^/account/$', views.index, name=index),它可以接收四个参数,分别是两个必选参数:regex.view和两个可选参数:kwargs.name,接下来详细介绍这四个参数. regex regex代表一个正则表达式,凡是与regex匹配的URL请求都会执行到url()函数中对应的第二个参数view代表的视图函数中.需要注意的是:正则表达式不会匹配URL中的域名和查询参数,如:http://www.foofish.net/ar

python web1(解析url)

环境:pycharm 尝试对地址进行切片 去掉头 http 或 https a.遇到了一些问题 url = 'https://www.cnblogs.com/derezzed/articles/8119592.html' #检查协议 protocl = "http" if url[:7] =="http://": u = url.split('://')[1] elif url[:8] == "https://": protocl = "

浅谈浏览器解析 URL+DNS 域名解析+TCP 三次握手与四次挥手+浏览器渲染页面

(1)浏览器解析 URL 为了能让我们的知识层面看起来更有深度,我们应该考虑下面两个问题了: 从浏览器输入 URL 到渲染成功的过程中,究竟发生了什么? 浏览器渲染过程中,发生了什么,是不是也有重绘与回流? OK,兴致来了,我们就先从 浏览器解析 URL 看起,先来看看当用户输入 URL,到浏览器呈现给用户页面,经历了以下过程: 版本 A: 用户输入 URL 地址. 对 URL 地址进行 DNS 域名解析. 建立 TCP 连接(三次握手). 浏览器发起 HTTP 请求报文. 服务器返回 HTTP

使用哈希算法将数字解析为函数指针-一种架构方法

使用哈希算法将数字解析为函数指针: 这也算是最简单的,不会带有地址冲突的哈希了,哈希函数可以描述为: func = arr[index].func index为输入,根据输入的index,找到其对应的函数指针返回 这种架构虽然简单,但是在做测试时还是非常有用的 比如一种测试有几十项,我可以使用这种架构来实现自动轮巡测试,或者手动交互时输入一个Index,即可以去调用对应的测试函数 另外根据这个代码,还可以学习到函数指针的定义和使用: 定义:typedef int (*FuncPtr)(char

利用a标签自动解析URL

很多时候我们有从一个URL中提取域名,查询关键字,变量参数值等的需要,而万万没想到可以让浏览器方便地帮我们完成这一任务而不用我们写正则去抓取.方法就在JS代码里先创建一个 a 标签然后将需要解析的URL赋值给 a 的 href 属性,然后就得到了一切我们想要的了. var a = document.createElement('a'); a.href = 'http://www.cnblogs.com/wayou/p/'; console.log(a.host); 利用这一原理,稍微扩展一下,就