酷!學園

技術討論區 => 程式討論版 => PHP程式設計討論區 => 主題作者是: baseball 於 2003-07-04 20:23

主題: php寫計算機問題
作者: baseball2003-07-04 20:23
請問一下,
我想見3個 table然後由
使用者輸入 5 * 5 (3個欄位,* / + - 自行輸入)
結果要顯示 5 * 5 = 25

慶問要整樣寫
運算元的服號要長要呼叫


<form  action=test.php method=post>
        <input type=text name=n1 ><input type=text name=x><input type=text name=n2>
        <input type=submit value="確定">
        </form>
<?php
         $v="$x";
         $total=$n1"$x"$n2;
         echo "$n1$x$n2=$total";
?>
主題: php寫計算機問題
作者: dark2003-07-04 21:20
<form action=test.php method=post>
<input type=text name=n1 >
<input type=submit value="確定">
</form>
<?php
$total=system('echo "' . $n1 . '" | bc');
echo "($n1 . ' = ' . $total)";
?>

連四則運算都可以喔... ^^
但只有一個 text input , 還呼叫系統...
主題: php寫計算機問題
作者: baseball2003-07-04 22:03
不好意思,看不懂.....
請問system為函數嗎?他是屬於哪一類別
" | bc'  是做蛇摸用的???



謝謝!

引述: "dark"
<form action=test.php method=post>
<input type=text name=n1 >
<input type=submit value="確定">
</form>
<?php
$total=system('echo "' . $n1 . '" | bc');
echo "($n1 . ' = ' . $total)";
?>

連四則運算都可以喔... ^^
但只有一個 text input , 還呼叫系統...
主題: php寫計算機問題
作者: hoyo2003-07-04 22:57
system :呼叫系統指令
bc :Linux 計算機指令
附註:會想到使用 bc 來應該也算是 "天下第一人" 吧 ^^"
至少我就想不到這招 ^^A
主題: php寫計算機問題
作者: baseball2003-07-04 23:23
不然該長樣寫呢
上面的世子我在 win的aqpserv2.0試不出

引述: "hoyo"
system :呼叫系統指令
bc :Linux 計算機指令
附註:會想到使用 bc 來應該也算是 "天下第一人" 吧 ^^"
至少我就想不到這招 ^^A
主題: php寫計算機問題
作者: Darkhero2003-07-04 23:26
引述: "baseball"
不然該長樣寫呢
上面的世子我在 win的aqpserv2.0試不出

引述: "hoyo"
system :呼叫系統指令
bc :Linux 計算機指令
附註:會想到使用 bc 來應該也算是 "天下第一人" 吧 ^^"
至少我就想不到這招 ^^A


這下糟糕...win2000 中沒有 bc..@_@..
不知道能不能呼叫小算盤呢?
主題: php寫計算機問題
作者: duan2003-07-04 23:54
引述: "Darkhero"

這下糟糕...win2000 中沒有 bc..@_@..
不知道能不能呼叫小算盤呢?


其實這類的應用, 弟比較建議用 java script , 一來是反應即時 (不用傳回 server),
再來是不用考慮安全性的問題 ( 用 system , exec,  一定要小心) .

除非要記錄使用者算過什麼東西, 弟覺得用 client script 打發掉這類問題
最快.     :)
主題: php寫計算機問題
作者: baseball2003-07-05 00:01
我只是想知道一下
是否可以用變數來接 運算子
得到total
都給 echo 顯示

不然的話,應該可以用下拉式選單取value的值來對應



引述: "duan"
引述: "Darkhero"

這下糟糕...win2000 中沒有 bc..@_@..
不知道能不能呼叫小算盤呢?


其實這類的應用, 弟比較建議用 java script , 一來是反應即時 (不用傳回 server),
再來是不用考慮安全性的問題 ( 用 system , exec,  一定要小心) .

除非要記錄使用者算過什麼東西, 弟覺得用 client script 打發掉這類問題
最快.     :)
主題: php寫計算機問題
作者: duan2003-07-05 00:21
引述: "baseball"
我只是想知道一下
是否可以用變數來接 運算子
得到total
都給 echo 顯示
不然的話,應該可以用下拉式選單取value的值來對應


這樣問的話就比較清楚您的意思, 上面的網友看起來都被誤導了.  :)

您的意思是像 +-*/ 之類的符號會傳回給 php , 然後要變成運算子,
ex:
$val1=5;
$val2=5;
$cal="+";
然後要處理 "$val1 $cal $val2" 變成運算式?
請參考  eval 這個 function    :)

補充一下, eval 雖然是比 system 安全點, 但還是要檢查傳進來的變數.  :)
主題: php寫計算機問題
作者: baseball2003-07-07 19:45
試了好久,還是不太會用,可否再幫忙解釋一下
謝謝!

引述: "duan"
引述: "baseball"
我只是想知道一下
是否可以用變數來接 運算子
得到total
都給 echo 顯示
不然的話,應該可以用下拉式選單取value的值來對應


這樣問的話就比較清楚您的意思, 上面的網友看起來都被誤導了.  :)

您的意思是像 +-*/ 之類的符號會傳回給 php , 然後要變成運算子,
ex:
$val1=5;
$val2=5;
$cal="+";
然後要處理 "$val1 $cal $val2" 變成運算式?
請參考  eval 這個 function    :)

補充一下, eval 雖然是比 system 安全點, 但還是要檢查傳進來的變數.  :)
主題: php寫計算機問題
作者: twbestama2003-08-01 14:28
用最笨的方法
switch($cal)
   case "+"
        $sum=$val1+$val2;
   case ...
   ...