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 相关文章推荐
example2.php
Oct 09 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP中的traits简单使用实例
May 13 PHP
php实现递归的三种基本方式
Jul 04 PHP
php微信开发之关注事件
Jun 14 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 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
写一个用户在线显示的程序
2006/10/09 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
img的onload的另类用法
2008/01/10 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
python 简单的多线程链接实现代码
2016/08/28 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
2014新课程改革心得体会
2014/03/10 职场文书
公路绿化方案
2014/05/12 职场文书
工作表扬信范文
2015/01/17 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
团拜会主持词
2015/07/04 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
浅谈Python响应式类库RxPy
2021/06/14 Python
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python