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 相关文章推荐
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
php实现图片按比例截取的方法
Feb 06 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
Laravel配合jwt使用的方法实例
Oct 25 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数字转汉字代码(算法)
2011/10/08 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
img的onload的另类用法
2008/01/10 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
vue实现评论列表功能
2019/10/25 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Python gevent协程切换实现详解
2020/09/14 Python
文科生自我鉴定
2014/02/15 职场文书
集体婚礼策划方案
2014/02/22 职场文书
广告宣传策划方案
2014/05/21 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
集结号观后感
2015/06/08 职场文书
创业计划书之餐饮
2019/09/02 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
Python四款GUI图形界面库介绍
2022/06/05 Python