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 相关文章推荐
Content-type 的说明
Oct 09 PHP
Adodb的十个实例(清晰版)
Dec 31 PHP
使用CodeIgniter的类库做图片上传
Jun 12 PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
php的4种常见运行方式
Mar 20 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
Smarty模板变量与调节器实例详解
Jul 20 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
第十五节--Zend引擎的发展
2006/11/16 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
PHP反射基础知识回顾
2020/09/10 PHP
用javascript操作xml
2006/11/04 Javascript
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
Django模板语言 Tags使用详解
2019/09/09 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
大学生社会实践自我鉴定
2014/03/24 职场文书
产品开发计划书
2014/04/27 职场文书
高中班级口号
2014/06/09 职场文书
文明上网主题班会
2015/08/14 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js