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 相关文章推荐
dede全站URL静态化改造[070414更正]
Apr 17 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
PHP如何实现Unicode和Utf-8编码相互转换
Jul 29 PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
php的常量和变量实例详解
Jun 27 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 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
discuz目录文件资料汇总
2014/12/30 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
js编写简单的计时器功能
2017/07/15 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
微信小程序实现分页加载效果
2020/11/19 Javascript
Python实现CET查分的方法
2015/03/10 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
python爬虫超时的处理的实例
2018/12/19 Python
python函数与方法的区别总结
2019/06/23 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
教师评优的个人自我评价分享
2013/09/19 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书