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 相关文章推荐
php生成随机密码的三种方法小结
Sep 04 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
Zend的AutoLoad机制介绍
Sep 27 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
Apr 15 PHP
关于svn冲突的解决方法
Jun 21 PHP
php导入导出excel实例
Oct 25 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
php用户名的密码加密更安全的方法
Jun 21 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
javascript验证身份证号
2015/03/03 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
vue使用websocket的方法实例分析
2019/06/22 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
征婚广告词
2014/03/17 职场文书
房屋继承公证书
2014/04/10 职场文书
个人投资计划书
2014/05/01 职场文书
销售人才自我评价范文
2014/09/27 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
婚礼父母致辞
2015/07/28 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书