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 相关文章推荐
PHP输出XML到页面的3种方法详解
Jun 06 PHP
如何利用PHP执行.SQL文件
Jul 05 PHP
php获取网页标题和内容函数(不包含html标签)
Feb 03 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 PHP
Yii2如何批量添加数据
May 17 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
tp5.1 框架查询表达式用法详解
May 25 PHP
tp5.1框架数据库子查询操作实例分析
May 26 PHP
php操作redis命令及代码实例大全
Nov 19 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python实现多线程抓取知乎用户
2016/12/12 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Form表单及django的form表单的补充
2019/07/25 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
python 实现IP子网计算
2021/02/18 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
商场中秋节广播稿
2014/01/17 职场文书
新年晚会主持词
2014/03/24 职场文书
毕业横幅标语
2014/10/08 职场文书
银行授权委托书样本
2014/10/13 职场文书
党员心得体会范文2016
2016/01/23 职场文书