1 $a="<?php echo 1;?>";
echo $a;
为什么这样输出为空
2$a="<?php echo 1;?>";
eval($a);
这样输出报错
3$a="<?php echo 1;?>";
eval("?>".$a);
这样才能输出1
最近看框架 发现了这个eval函数 也想到这几个问题 求大神解答 谢谢
echo $a;
为什么这样输出为空
2$a="<?php echo 1;?>";
eval($a);
这样输出报错
3$a="<?php echo 1;?>";
eval("?>".$a);
这样才能输出1
最近看框架 发现了这个eval函数 也想到这几个问题 求大神解答 谢谢
$a="<?php echo 1;?>";
echo $a;
这样输出的并不是空,<?php echo 1;?>
只不过浏览器把 <?php ?> 当作 html 标记,看不见而已(文本方式下就看见了)2、
$a="<?php echo 1;?>";
eval($a);
这样输出报错
原因是 eval 的参数需要是合法的 php 语句
而 <?php
<?php echo 1; ?>
显然是错误的
<?php
$a="<?php echo 1;?>";
echo $a;
输出:<?php echo 1;?>,你查看浏览器源码就看到了2.
<?php
$a="<?php echo 1;?>";
eval($a);相当于<?php
<?php echo 1;?>当然出错了3.
<?php
$a="<?php echo 1;?>";
eval("?>".$a);相当于<?php
?><?php echo 1;?>所以正确