eval(cmd)与eval($cmd)的区别与联系是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计655个文字,预计阅读时间需要3分钟。
这个问题让我很困扰,今天终于解决了!问题1:关于eval()的执行是否需要双引号包涵:先看三个命令:A: php eval(system(dir))B: php $cmd=system(dir); eval($cmd)结果:A:B:报错思考:同样
这个问题一直困扰我许久,今天终于解决清楚了
问题1:eval的执行是否需要双引号包括:
先看三个命令:
A:<?php eval(system(dir))?> B:<?php $cmd="system(dir)"; eval($cmd)?>
A结果:
B结果:
报错
思考:
同样是一个命令,为什么会出现如此区别,询问了其他师傅得知:eval执行的是变量的值的时候,该变量值需要闭合,也就是必须是一个完整的语句,需要用分号结尾。根据这个道原理我们改一下上面的命令看看:
<?php $cmd="system(dir);"; eval($cmd)?>
结果:
发现是可以执行的。
本文共计655个文字,预计阅读时间需要3分钟。
这个问题让我很困扰,今天终于解决了!问题1:关于eval()的执行是否需要双引号包涵:先看三个命令:A: php eval(system(dir))B: php $cmd=system(dir); eval($cmd)结果:A:B:报错思考:同样
这个问题一直困扰我许久,今天终于解决清楚了
问题1:eval的执行是否需要双引号包括:
先看三个命令:
A:<?php eval(system(dir))?> B:<?php $cmd="system(dir)"; eval($cmd)?>
A结果:
B结果:
报错
思考:
同样是一个命令,为什么会出现如此区别,询问了其他师傅得知:eval执行的是变量的值的时候,该变量值需要闭合,也就是必须是一个完整的语句,需要用分号结尾。根据这个道原理我们改一下上面的命令看看:
<?php $cmd="system(dir);"; eval($cmd)?>
结果:
发现是可以执行的。

