php使用parse_str实现查询字符串解析到变量中的方法


Posted in PHP onFebruary 17, 2017

本文实例讲述了php使用parse_str实现查询字符串解析到变量中的方法。分享给大家供大家参考,具体如下:

parse_str()函数可实现把字符串解析到变量中,这意味着实现了字符串与变量之间的一种转换机制,在与客户端数据传递的过程中,数据是通过字符串的形式传递,如GET请求,然后在服务器端通过$_GET/$_POST等全局变量实现字符串与变量的转换,如:https://3water.com/?index.php?var1=1&var2=2,请求后服务端可使用$_GET['var1']的方式获取var1=1&var2=2这一段字符串转换成变量。parse_str()函数可实现用样的功能,使用parse_str()函数解析$_SERVER['QUERY_STRING']的值,就可以直接实现字符串与变量的转换,如$var1。

一、函数原型

void parse_str ( string str [, array &arr] )

二、版本兼容

PHP 3, PHP 4, PHP 5

三、函数基础用法与实例

1. 解析字符串为变量

<?php
parse_str("var1=3water&var2=parse_str");
echo $var1.$var2;
?>

2. 解析字符串并将变量存储到数组中

<?php
parse_str("var1=3water&var2=parse_str",$array);
print_r($array);
?>

输出:

Array ( [var1] => 3water [var2] => parse_str )

说明:这种将变量存储到数组中在PHP 4.0.3 才增加

3. 解析的字符串有空格

<?php
parse_str("v ar1=3water&var 2=parse_str",$array);
print_r($array);
?>

输出:

Array ( [v_ar1] => 3water [var_2] => parse_str )

说明:直接将空格转换为下划线_

四、注意事项

1. 如果未设置 array 参数,由该函数设置的变量将覆盖已由同名变量。

2. php.ini 中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。

3. parse_str() 函数在处理参数时存在漏洞,攻击者可以利用这个漏洞启用register_globals,从而进一步利用其他PHP脚本中的漏洞。如果仅以一个参数调用 parse_str()的话,该函数会认为该参数是通过URL传送的请求字符串那样解析所提供的字符串,但外部攻击者可以在调用 parse_str()期间发送很多请求变量来触发memory_limit请求终止。如果在调用parse_str()期间执行了请求关闭的话,则在相关webserver进程的其余生命周期期间register_globals标签会一直打开。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP使用者状态管理功能的应用
Oct 09 PHP
提升PHP执行速度全攻略(上)
Oct 09 PHP
PHP4实际应用经验篇(5)
Oct 09 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
Nov 10 PHP
PHP代码审核的详细介绍
Jun 13 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
PHP图片添加水印功能示例小结
Oct 03 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
php-7.3.6 编译安装过程
Feb 11 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
Feb 17 #PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 #PHP
PHP中单例模式与工厂模式详解
Feb 17 #PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 #PHP
PHP合并数组函数array_merge用法分析
Feb 17 #PHP
yii2利用自带UploadedFile实现上传图片的示例
Feb 16 #PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 #PHP
You might like
js单例模式详解实例
2013/11/21 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
js表单验证实例讲解
2016/03/31 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
微信小程序实现折叠展开效果
2018/07/19 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
python实现猜拳游戏项目
2020/11/30 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
电大本科自我鉴定
2014/02/05 职场文书
工作睡觉检讨书
2014/02/25 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
安徽导游词
2015/02/12 职场文书
采购员工作总结范文
2015/08/12 职场文书
给学校的建议书400字
2015/09/14 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB