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中定时计划任务的实现原理
Jan 08 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
PHP小教程之实现双向链表
Jun 12 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
thinkphp实现分页显示功能
Dec 03 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 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/05 新手入门
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
PHP实现的日历功能示例
2018/09/01 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
python 实现性别识别
2020/11/21 Python
网站编辑求职信
2013/10/17 职场文书
小学领导班子对照材料
2014/08/23 职场文书
学校施工安全责任书
2015/01/29 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
golang 在windows中设置环境变量的操作
2021/04/29 Golang
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers