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 相关文章推荐
session 的生命周期是多长
Oct 09 PHP
使用PHP和XSL stylesheets转换XML文档
Oct 09 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 PHP
is_file和file_exists效率比较
Mar 14 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/03 咖啡文化
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
PHP+javascript液晶时钟
2006/10/09 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
php封装一个异常的处理类
2017/06/08 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
js showModalDialog参数的使用详解
2014/01/07 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Linux下Python获取IP地址的代码
2014/11/30 Python
Python中的True,False条件判断实例分析
2015/01/12 Python
python实现机器学习之多元线性回归
2018/09/06 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python梯度下降算法的实现
2020/02/24 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
音乐系毕业生自荐信
2013/10/27 职场文书
现场施工员岗位职责
2014/03/10 职场文书
留学顾问岗位职责
2014/04/14 职场文书
大学学习计划书范文
2014/05/02 职场文书
班级文化标语
2014/06/23 职场文书