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之第六天
Oct 09 PHP
笑谈配置,使用Smarty技术
Jan 04 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
php截取中文字符串函数实例
Feb 23 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 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
基于mysql的论坛(7)
2006/10/09 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
Date对象格式化函数代码
2010/07/17 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python sys.path详细介绍
2013/10/17 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
对python中各个response的使用说明
2020/03/28 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
校园之声广播稿
2014/01/31 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
新年寄语大全
2014/04/12 职场文书
十月围城观后感
2015/06/08 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
浅谈怎么给Python添加类型标注
2021/06/08 Python
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers