求助一个eval的简单问题
时间:2011-12-05
来源:互联网
$t = 'echo "<p>: $te </p>";'; $te = 'etst'; eval ($t);
如上..我想达到的效果就是上面的结果..
eval太危险了..有没有别的办法呀.
在线等!
作者: wc1217 发布时间: 2011-12-05
如果连自己都成了危险,那我也就无语了
如果将同样的代码写入文件,然后 include 进来。按你的观点是否就安全了呢?
eval 唯一的缺点是他所执行的代码未经预编译,临时编译必然影响效率
当然并不是非要用 eval 的,比如PHP code
$t = '<p>: $te </p>'; $te = 'etst'; echo preg_replace('/\$\w+/ise', '$0', $t);
输出 <p>: etst </p>
有点“模板”的味道了
作者: xuzuning 发布时间: 2011-12-05
eval里的数据是ajx过来的..不敢直接eval.
只有正则了
作者: wc1217 发布时间: 2011-12-05

你用到的模板里支持php语法不就靠这个吗
作者: xjl756425616 发布时间: 2011-12-05
作者: wc1217 发布时间: 2011-12-05
作者: RXPY2007 发布时间: 2011-12-05

作者: xjl756425616 发布时间: 2011-12-05
作者: xjpphp 发布时间: 2011-12-05
PHP code
$code = 'echo 123;mysql_connect("localhost", "root", "root");'; // 获取执行代码中的方法 $r = '#(\w+)\([^)]*\);#'; preg_match_all($r, $code, $funcArr); //echo '<pre>';print_r($funcArr);exit; // 设置可以被执行的方法或者不可以被执行的方法等 $allows = array('echo', 'print', 'print_r', 'var_dump'); // 或者 //notAllows = array('mysql_connect', 'unlink', ...); if($funcArr[1]){ foreach($funcArr[1] as $func) { if(!in_array($func, $allows)) { exit('您正要执行无权限的代码,已经终止!'); } } } eval ($code);
作者: kyzy_yy_pm 发布时间: 2011-12-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28