php中使用parse_url()对网址进行解析的实现代码(parse_url详解)


Posted in PHP onJanuary 03, 2012

PHP 解析 URL函数: parse_url详解
parse_url — 解析 URL,返回其组成部分

说明

array parse_url ( string $url )
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。
参数
url
要解析的 URL
返回值
对严重不合格的 URL,parse_url() 可能会返回 FALSE 并发出 E_WARNING。否则会返回一个关联数组,其组成部分为(至少有一个):
scheme ? 如 http
host
port
user
pass
path
query ? 在问号 ? 之后
fragment ? 在散列符号 # 之后
范例
parse_url() 例子

<?php 
$url = 'http://username:password@hostname/path?arg=value#anchor'; 
print_r(parse_url($url)); 
?>

以上例程会输出:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)

常常我们会传送一大串网址,然后要解析的话,只能不断地去切token来解析。但是在php中,一定要学会使用前人所写过的函式,这样开发速度才会快别人一截。当然,要解析网址的话,就得去找相关的指令,而今天要介绍的,就是php中的parse_url这个函式。

这个函式主要是用来解析网址,而首先先看一下这个函式原型,其官方描述如下:

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

而php官方举了一个例子,而我将他扩充如下,以方便讲解。

<?php 
$url = 'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor'; 
print_r(parse_url($url)); 
?>

首先,先看一下这个程式的输出结果
Array (
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg1=value1&arg2=value2
[fragment] => anchor
)
其中,scheme是指他走的路线,而host则是站台网址,user则是使用者名称,pass则是密码,path则是路径,query则是参数,fragment则是锚点。

而在「$component」的部份,则是有以下的参数可供传递。

PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT
而这几个参数则分别代表了Array中的scheme、host、user、pass、path、query和fragment。

同样,举例来说,如果使用PHP_URL_PATH和PHP_URL_QUERY来说,以下为他的示范。

<?php 
$url = 'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor'; echo nl2br(parse_url($url, PHP_URL_PATH)."\n"); 
echo nl2br(parse_url($url, PHP_URL_QUERY)."\n"); 
?>

而输出结果将如下:
/path
arg1=value1&arg2=value2
PHP 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
php安全之直接用$获取值而不$_GET 字符转义
Jun 03 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
php编程每天必学之验证码
Mar 03 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 #PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 #PHP
第七章 php自定义函数实现代码
Dec 30 #PHP
第六章 php目录与文件操作
Dec 30 #PHP
第五章 php数组操作
Dec 30 #PHP
第四章 php数学运算
Dec 30 #PHP
第三章 php操作符与控制结构代码
Dec 30 #PHP
You might like
php记录代码执行时间(实现代码)
2013/07/05 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
jquery的index方法实现tab效果
2011/02/16 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
js实现导航跟随效果
2018/11/17 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
js实现超级玛丽小游戏
2020/03/18 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
python抓取京东商城手机列表url实例代码
2013/12/18 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
火锅店创业计划书范文
2014/02/02 职场文书
合伙协议书
2014/04/23 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
vue实现在data里引入相对路径
2022/06/05 Vue.js