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数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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+mysql)
2007/11/23 PHP
PHP集成FCK的函数代码
2008/09/27 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
为Python程序添加图形化界面的教程
2015/04/29 Python
Python实现遍历数据库并获取key的值
2015/05/17 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python 元类实例解析
2018/04/04 Python
python进行文件对比的方法
2018/12/24 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
python logging设置level失败的解决方法
2020/02/19 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
2014年上半年工作自我评价
2014/01/18 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
服务承诺书
2015/01/19 职场文书
企业宣传语大全
2015/07/13 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
Python内置数据类型中的集合详解
2022/03/18 Python