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中Object对象的笔记分享
Jun 28 PHP
php 团购折扣计算公式
Nov 24 PHP
php笔记之:初探PHPcms模块开发介绍
Apr 26 PHP
PHP时间格式控制符对照表分享
Jul 23 PHP
php常用的安全过滤函数集锦
Oct 09 PHP
smarty表格换行实例
Dec 15 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
php cookie工作原理与实例详解
Jul 18 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
购物车实现的几种方式优缺点对比
May 02 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
javascript Demo模态窗口
2009/12/06 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python轻松实现代码编码格式转换
2015/03/26 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
Python 列表理解及使用方法
2017/10/27 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
小学教师节活动方案
2014/01/31 职场文书
幼儿园秋游感想
2014/03/12 职场文书
静心口服夜广告词
2014/03/20 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
公司承诺书怎么写
2014/05/24 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL