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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
php 魔术函数使用说明
Feb 21 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php购物车实现代码
Oct 10 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
php生成扇形比例图实例
Nov 06 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
yii框架搜索分页modle写法
Dec 19 PHP
PHP7 其他修改
Mar 09 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中is_dir()函数使用指南
2015/05/08 PHP
php实现json编码的方法
2015/07/30 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
新手如何发布Python项目开源包过程详解
2019/07/11 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
苹果台湾官网:Apple台湾
2019/01/05 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
应届生如何写自荐信
2014/01/05 职场文书
单位消防安全制度
2014/01/12 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
收银员岗位职责
2015/02/03 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
vue自定义右键菜单之全局实现
2022/04/09 Vue.js