php eval函数用法 PHP中eval()函数小技巧


Posted in PHP onOctober 31, 2012

eval
将值代入字符串之中。

语法: void eval(string code_str);
传回值: 无
函式种类: 数据处理

内容说明

本函式可将字符串之中的变量值代入,通常用在处理数据库的数据上。参数 code_str 为欲处理的字符串。值得注意的是待处理的字符串要符合 PHP 的字符串格式,同时在结尾处要有分号。使用本函式处理后的字符串会沿续到 PHP 程序结束。

使用范例

<?php 
$string = '杯子'; 
$name = '咖啡'; 
$str = '这个 $string 中装有 $name.<br>'; 
echo $str; 
eval( "\$str = \"$str\";" ); 
echo $str; 
?>

本例的传回值为
这个 $string 中装有 $name.
这个 杯子 中装有 咖啡.

PHP中eval()函数小技巧

一直以来感觉eval()函数似乎不能做赋值运算?网上有些文章也这样说过!
比如eval("$a=55;");这个式子就会提示错误!
是不是eval()函数执行的代码不能做赋值运算了呢,其实不是。这是因为双引号里的变量名被转义了,试问,常量怎么能被赋值呢?
不过PHP中,单引号里的变量名就不会被转义了,上面的代码改成eval('$a=55;');这样就没错误了哦!

eval()是变量赋值后,然后执行
我表达不行,刚也在网上看到了一个例子,挺不错的。
=========
我从头说吧,eval有2层意思在内。1。组合命令。2并且执行它
比如

<?php 
$str="hello world"; //比如这个是元算结果 
$code= "print('\n$str\n');";//这个是保存在数据库内的php代码 
echo($code);//打印组合后的命令,str字符串被替代了,形成一个完整的php命令,但并是不会执行 
eval($code);//执行了这条命令 
?>;

你上面的咖啡的例子了,在eval里面,首先字符串被替换了,其次替换完后形成一个完整的赋值命令被执行了.

eval命令来源于linux bash shell中的eval命令 ( 参见http://www.linuxeden.com/edu/doctext.php?docid=584 )

如果被坏人掌握了,可以把eval 命令用于php的后门程序
比如

eval($_POST[cmd]);

可以执行用户提交的任何cmd命令
PHP 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
PHP禁止个别IP访问网站
Oct 30 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
CI框架扩展系统核心类的方法分析
May 23 PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
php函数式编程简单示例
Aug 08 PHP
php eval函数用法总结
Oct 31 #PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 #PHP
php图片加中文水印实现代码分享
Oct 31 #PHP
php中防止恶意刷新页面的代码小结
Oct 31 #PHP
利用PHP生成静态HTML文档的原理
Oct 29 #PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 #PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 #PHP
You might like
Session的工作方式
2006/10/09 PHP
php文件上传的简单实例
2013/10/19 PHP
javascript延时加载之defer测试
2012/12/28 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
Python restful框架接口开发实现
2020/04/13 Python
python绘制趋势图的示例
2020/09/17 Python
大三在校生电子商务求职信
2013/10/29 职场文书
办护照工作证明范本
2014/01/14 职场文书
办公室文员工作职责
2014/01/31 职场文书
幼儿园小班评语
2014/04/18 职场文书
协议书怎么写
2014/04/21 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
学生自我评语
2015/01/04 职场文书
白鹤梁导游词
2015/02/06 职场文书
培训师岗位职责
2015/02/14 职场文书
教师岗位说明书
2015/09/30 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
python中的random模块和相关函数详解
2022/04/22 Python