parse_url 解析 URL,返回其组成部分
发表日期:2021-07-01 08:56:30 | 来源: | | 浏览(986) 分类:URL 函数
parse_url
(PHP 4, PHP 5, PHP 7, PHP 8)
parse_url — 解析 URL,返回其组成部分
说明
$url
, int $component
= -1): mixed本函数解析一个 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_PATH
、PHP_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
。
更新日志
版本 | 说明 |
---|---|
5.4.7 | 修复了 host 在 协议 省略时的识别。 |
5.3.3 |
在 URL 解析失败时将不会产生 E_WARNING 级别的错误。
|
5.1.2 | 增加了参数 component 。 |
范例
示例 #1 parse_url() 例子
<?php $url = 'http://username:password@hostname/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
示例 #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" }
注释
注意:
本函数不能用于相对 URL。
注意:
parse_url() 是专门用来解析 URL 而不是 URI 的。不过为遵从 PHP 向后兼容的需要有个例外,对 file:// 协议允许三个斜线(file:///...)。其它任何协议都不能这样。
参见
- pathinfo() - 返回文件路径的信息
- parse_str() - 将字符串解析成多个变量
- http_build_query() - 生成 URL-encode 之后的请求字符串
- http_build_url()
- dirname() - 返回路径中的目录部分
- basename() - 返回路径中的文件名部分
- » RFC 3986
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- base64_decode 对使用 MIME base64 编码的数据进行解码(0)
- base64_encode 使用 MIME base64 对数据进行编码(0)
- get_headers 取得服务器响应一个 HTTP 请求所发送的所有标头(0)
- get_meta_tags 从一个文件中提取所有的 meta 标签 content 属性,返回一个数组(0)
- http_build_query 生成 URL-encode 之后的请求字符串(0)
- parse_url 解析 URL,返回其组成部分(0)
- rawurldecode 对已编码的 URL 字符串进行解码(0)
- rawurlencode 按照 RFC 3986 对 URL 进行编码(0)
- urldecode 解码已编码的 URL 字符串(0)
- urlencode 编码 URL 字符串(0)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)