eval
()
是变量赋值后,然后执行
我表达不行,刚也在网上看到了一个例子,挺不错的。
=========
我从头说吧,
eval
有 2 层意思在内。1。组合命令。2
并且执行它
比如
代码如下:
<?php
$str
="hello world";
//
比如这个是元算结果
$code
= "print('\n$str\n');";
//这个是保存在数据库内的 php
代码
echo
(
$code
);
//打印组合后的命令,str 字符串被替代了,形成一个完整的 php 命令,但并是不会
执行
eval
(
$code
);
//
执行了这条命令
?>;
你上面的咖啡的例子了,在
eval
里面,首先字符串被替换了,其次替换完后形成一个完整
的赋值命令被执行了.
eval
命令来源于 linux bash shell 中的
eval
命令 ( 参见
如果被坏人掌握了,可以把
eval
命令用于 php
的后门程序
比如
代码如下:
eval
(
$_POST
[cmd]);
可以执行用户提交的任何 cmd 命令