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 flush类输出缓冲剖析
Oct 19 PHP
php实现mysql同步的实现方法
Oct 21 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php中日期加减法运算实现代码
Dec 08 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
PHP的变量类型和作用域详解
Mar 12 PHP
PHP多态代码实例
Jun 26 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
PHP使用函数用法详解
Sep 30 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 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
PHP 采集程序原理分析篇
2010/03/05 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
php三元运算符知识汇总
2015/07/02 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
Django 响应数据response的返回源码详解
2019/08/06 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python如何读写字节数据
2020/08/05 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
晚会邀请函范文
2014/01/24 职场文书
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript