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 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
php不用正则验证真假身份证
Nov 06 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
PHP可变变量学习小结
Nov 29 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
PHP培训要多少钱
Jun 06 PHP
PHP时间函数使用详解
Mar 21 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
PHP7 新增功能
Mar 09 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
php学习之 循环结构实现代码
2011/06/09 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
WAF的正确bypass
2017/01/05 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
JavaScript打字小游戏代码
2011/12/26 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
vue实现文字加密功能
2019/09/27 Javascript
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
英国袜子店:Sock Shop
2017/01/11 全球购物
大学新闻系应届生求职信
2014/06/02 职场文书
建筑安全标语
2014/06/07 职场文书
无房证明范本
2014/09/17 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
交通违章检讨书
2014/09/21 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
MySQL注入基础练习
2021/05/30 MySQL
Python实现简繁体转换
2021/06/07 Python
python字符串的多行输出的实例详解
2021/06/08 Python