当前位置: 首页 > news >正文

php字符串变数组

  这篇不是讨论split,explode的用法,而是探讨一种特殊情况。

  举例说明.


  
$array = array ( 2 , ' a ' => array ( ' b ' => ' c ' ));
// 深度keys列表
$keys = array ( ' a ' , ' b ' );
//
$vals = ' x ' ;

// 问题是,如何根据$keys数组(动态),改动相应数组$array的值
//比如上述情况要求将$array['a']['b'] 的值由'c'改成'x'
//注意$keys是动态的,也有可能是array('a','c','x','d'),这种情况就
//要求将$array['a']['c']['x']['d']设置为'x';

 

 

 乍一看,似乎很简单,eval不就可以搞定了么,确实,但是eval在很多服务器都是严禁使用的,

 除去eval,不是还有preg_replace + e修正符么,的确也可以,但是总是有一些安全上的担忧,

 万一给注入system/exec/shel_exec函数+系统命令岂不是和eval一样危险?

 最终想到了parse_str,这个相对就安全不少。

 


  
$array = array ( 2 , ' a ' => array ( ' b ' => ' c ' ));
// 深度keys列表
$keys = array ( ' a ' , ' b ' );
//
$vals = ' x ' ;
// 字符串转数组
parse_str ( ' array[ ' . implode ( ' ][ ' , $keys ) . ' ]= ' . $vals );

print_r ( $array );

 

转载于:https://www.cnblogs.com/funlake/archive/2010/07/15/1777898.html

相关文章:

  • 向现有表添加标识列(IDENTITY)
  • 轻松实现无刷新三级联动菜单[VS2005与AjaxPro]【转】
  • ArcSDE vs. Oracle Spatial 16
  • 论文选题系统
  • 使用Reflector查看闭包
  • 巧替换windows 7中的宋体 simsun.ttc
  • JavaScript学习笔记(二)——从简单开始学起
  • 切片地图服务使用Flex API编辑和更新切图
  • 敏捷宣言创始人:十年之后看“修炼”
  • ArcSDE vs. Oracle Spatial 17
  • 【转】人际关系经验
  • ArcSDE vs. Oracle Spatial 18
  • Entity Framework Code-First(下)
  • 《ArcSDE vs. Oracle Spatial》 PDF
  • 表单向Servlet提交参数时的中文乱码问题
  • CentOS 7 修改主机名
  • cookie和session
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • java正则表式的使用
  • Material Design
  • PHP CLI应用的调试原理
  • TCP拥塞控制
  • Vue 2.3、2.4 知识点小结
  • 闭包--闭包之tab栏切换(四)
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 工作中总结前端开发流程--vue项目
  • 前端临床手札——文件上传
  • 时间复杂度与空间复杂度分析
  • 微信小程序:实现悬浮返回和分享按钮
  • 物联网链路协议
  • 学习ES6 变量的解构赋值
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Core 通过 Ef Core 操作 Mysql
  • .Net 垃圾回收机制原理(二)
  • .Net 应用中使用dot trace进行性能诊断
  • .NET开发人员必知的八个网站
  • .NET中的Exception处理(C#)
  • .project文件
  • .sys文件乱码_python vscode输出乱码
  • /bin/bash^M: bad interpreter: No such file or directory
  • ::前边啥也没有
  • ;号自动换行
  • ?.的用法
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [AIGC] 开源流程引擎哪个好,如何选型?