如何运算字符串里的表达式呢?
假设
$string="$cost+12.00";
$cost=10;
$special_price=$string;
如何可以让$special_price的到22.00而不是"10+12.00"呢?
问题点数:20、回复次数:12Top
1 楼syre(神仙)回复于 2005-08-02 13:33:23 得分 0
$special_price=eval($string);Top
2 楼dreamfly_whj(梦飞)回复于 2005-08-02 14:05:31 得分 5
<?PHP
$cost = 10;
$string = $cost+12.00;
$special_price = (string) $string;
//echo $special_price;
?>Top
3 楼dreamfly_whj(梦飞)回复于 2005-08-02 14:07:28 得分 0
to syre(神仙)
你的eval 使用错误Top
4 楼xuzuning(唠叨)回复于 2005-08-02 14:17:10 得分 3
$special_price = eval("return $string;");Top
5 楼syre(神仙)回复于 2005-08-02 16:56:26 得分 0
......
丢脸了Top
6 楼gzty(【风逍遥】123笨小孩天天快乐)回复于 2005-08-02 21:51:12 得分 0
老大和神仙活了?
学习............
Top
7 楼mysqlaping(处女主任的兄弟)回复于 2005-08-03 01:00:59 得分 2
<?php
$cost=10;
$string="$cost+12.00";
$special_price=$string;
$special_price = eval(" return $special_price;");
echo $special_price;
?>Top
8 楼zairwolf(君子兰)回复于 2005-08-03 01:21:04 得分 5
楼上的楼上咒人家啊。
eval可以,不过楼主注意防止安全问题。Top
9 楼collins_nz(小强)回复于 2005-08-03 05:17:13 得分 0
谢谢大家。
楼上的。eval这个FUNCTION有什么安全问题?Top
10 楼netvt(唯她(为了泡老婆,努力学习LISP))回复于 2005-08-03 06:18:13 得分 2
可以将欲执行的字串 ($special_price) 构造为一段恶意代码.
e.g.
<?php
$special_price = "exec('env');";
echo eval("return $special_price");
?>Top
11 楼heiyeshuwu(黑夜路人)回复于 2005-08-03 09:45:08 得分 3
eval()可以执行任何php代码,人家就极有可能提交恶意的代码,比如:
$string = "system('cat /usr/passwd')";
eval($string);
如果有权限的话,那么你的密码档里的所有用户就被看走啦。
上面的表达式好象不对Top
12 楼collins_nz(小强)回复于 2005-08-03 13:09:44 得分 0
谢谢各位的帮忙。Top




