附机试时编的程序:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>运算</title>
</head><body>
<?
if($_POST[action]=="do"){
$shiziArray = split("\*",$_POST[shizi]);
if(count($shiziArray)!=3){
echo "您输入的式子不对.";
}else{
$result = 1;
foreach($shiziArray as $item){
$result *= floatval(trim($item));
}
echo "运算结果: $_POST[shizi] = $result";
}
}else{
?>
<form name="form1" method="post" action="">
请输入 长*宽*高:<br>
  <input name="shizi" type="text" id="shizi">
  <input name="action" type="hidden" id="action" value="do">
  <br>
  <input type="submit" name="Submit" value="提交">
</form>
<?
}
?>
</body>
</html>

解决方案 »

  1.   

    要是我做 2*3*4 
    我 一定用 eval 而不去搞啥拆分的。/:D
      

  2.   

    有点搞笑了...这也可以4000元/月?
    看来,不懂的人可真多哦....嘿嘿.....PHP有前途.有前途...大家努力哦
      

  3.   

    回复人: mrshelly(Shelly) ( ) 信誉:100  2005-05-20 08:03:00  得分: 0  
     
     
       要是我做 2*3*4 
    我 一定用 eval 而不去搞啥拆分的。/:D
      
     
    ---------------
    同意。楼主方法太笨了点。
      

  4.   

    回复人: lzkd(浪子快刀) ( ) 信誉:105  2005-05-20 08:31:00  得分: 0  
     
     
       有点搞笑了...这也可以4000元/月?
    看来,不懂的人可真多哦....嘿嘿.....PHP有前途.有前途...大家努力哦
      
     
    ---------------
    是啊。接触客户多了,你就知道什么叫大众水平了。难怪联想卖那么垃圾的电脑给他们了。有情可缘。
      

  5.   

    要是我做 2*3*4 
    我 一定用 eval 而不去搞啥拆分的。/:D
    我是新来的,哪位高手能不能把这种方法帖出来啊?
      

  6.   

    安全性暂不做考虑。
    eval(" echo(".$_POST["text1"].");");
      

  7.   

    楼上比我还简练。赫赫。
    安全性?我记得eval确实要考虑这个。不过具体是什么?
      

  8.   

    $_POST["text1"]的前面和后面为什么都要加两个.号呢?
      

  9.   

    <?
    if($_POST[action]=="do"){
    echo $_POST[shizi]."=";
    eval(" echo (".$_POST["shizi"].");");
    }else{
    ?>
    机试的时候要是这样写的话,没准工资能涨到5000呢.呵呵
      

  10.   

    <?
    if($_POST[action]=="do"){
    echo $_POST[shizi]."=";
    eval(" echo (".$_POST["shizi"].");");
    }else{
    ?>
    机试的时候要是这样写的话,没准工资能涨到5000呢.呵呵
    ---
    用 eval 安全性很差的,而且如果用户输入不标准的话,就会出错,除非先对 $_POST["shizi"] 用正则表达式检验正确性.美食公司,不是专业搞程序的,只是招人制作和维护网站.
    地点在广州,4000包食宿不是很高,但对刚毕业的不算低.
      

  11.   

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    说句我的笑话 做网页三年 "http-equiv" 从来没有去记
    楼主当时用手写的还是用工具软件?
      

  12.   

    加一个验证,如:ereg([^0-9\.\*=],$_POST["shizi"])
    再在 eval 本身用@,如 @eval("\$rs=".$_POST["shizi"]);
    if($rs=="") echo "出错";
      

  13.   

    回复人: ccxxcc(cc小超) ( ) 信誉:100  2005-05-20 13:58:00  得分: 0  
     
     
       <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    说句我的笑话 做网页三年 "http-equiv" 从来没有去记
    楼主当时用手写的还是用工具软件?
      
     我也是这样子的。不是手写代码的人,很多时候这些东西都不知道的。
    依赖于工具有时候把人变得很笨,离开它就没哲了。
      

  14.   

    还是正则表达式,能不能把字符串直接做成表达式来算?
    --------
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>运算</title>
    </head><body>
    <?
    if($_POST[action]=="do"){
    $shizi = preg_replace("/[^\d\.\+\-\*\/\(\)\%]/","",$_POST[shizi]);
    if($shizi!=$_POST[shizi]){
    echo "您输入的式子不对.";
    }else{
    unset($result);
    @eval("\$result = $shizi;");
    if(isset($result)){
    echo "运算结果: $_POST[shizi] = $result";
    }else{
    echo "您输入的式子不对.";
    }
    }
    }else{
    ?>
    <form name="form1" method="post" action="">
    请输入 数学表达式:<br>
      <input name="shizi" type="text" id="shizi">
      <input name="action" type="hidden" id="action" value="do">
      <br>
      <input type="submit" name="Submit" value="提交">
    </form>
    <?
    }
    ?>
    </body>
    </html>