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
PHP 裁剪图片成固定大小代码方法
Sep 09 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
php ios推送(代码)
Jul 01 PHP
php inc文件使用的风险和注意事项
Nov 12 PHP
php验证session无效的解决方法
Nov 04 PHP
php判断linux下程序问题实例
Jul 09 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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转义输出HTML到JavaScript
2015/03/27 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
php简单实现数组分页的方法
2016/04/30 PHP
Egret引擎开发指南之发布项目
2014/09/03 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
快速入手Python字符编码
2016/08/03 Python
python下10个简单实例代码
2017/11/15 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
python实现自动发送报警监控邮件
2018/06/21 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python实现批量文件重命名
2019/10/31 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
animation和transition的区别
2020/10/12 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
辞职信怎么写
2015/02/27 职场文书
赤壁观后感(2)
2015/06/15 职场文书
python随机打印成绩排名表
2021/06/23 Python
Spring 使用注解开发
2022/05/20 Java/Android