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 相关文章推荐
请离开include_once和require_once
Jul 18 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
PHP静态成员变量
Feb 14 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 PHP
PHP 8新特性简介
Aug 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
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
js格式化时间的方法
2015/12/18 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
售后服务承诺书范文
2014/03/26 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
经营目标管理责任书
2014/07/25 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
2019思想汇报范文
2019/05/21 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers