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 相关文章推荐
动态新闻发布的实现及其技巧
Oct 09 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
PHP魔术方法的使用示例
Jun 23 PHP
PHP实现多文件上传的方法
Jul 08 PHP
Yii框架分页实现方法详解
May 20 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
php实现QQ小程序发送模板消息功能
Sep 18 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
收音机术语解释
2021/03/01 无线电
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
javascript 常用方法总结
2009/06/03 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
JS跨域问题详解
2014/11/25 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
pandas值替换方法
2018/07/10 Python
Flask-Mail用法实例分析
2018/07/21 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python判断输入日期为第几天的实例
2018/11/13 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
django 模型中的计算字段实例
2020/05/19 Python
Python中and和or如何使用
2020/05/28 Python
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
异常和异常类的概念
2014/09/12 面试题
如何转换一个字符串到enum值
2014/04/12 面试题
店长岗位的工作内容
2013/11/12 职场文书
学生爱国演讲稿
2014/01/14 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
加拿大留学自荐信
2014/01/28 职场文书
董事长秘书职责
2014/01/31 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
低碳环保倡议书
2014/04/14 职场文书
2014年党总支工作总结
2014/12/18 职场文书
新年祝酒词大全
2015/08/11 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python