2011-05-11 48 views
5

我正在尋找一種運行在php上的迷你腳本語言,我需要解釋簡單的公式(電子表格的腳本語言會這樣做)。我需要的主要是變量和作曲和數學運算條件以及if語句。在php之上的迷你腳本語言

例如:

如果(價格1> 360) 結果=(價格1 * Q)+價格1 * Q/17 否則......

+4

爲什麼不直接寫PHP呢?添加更多語言層只會減慢速度。 – 2011-05-11 19:31:10

+0

或框架? – Gal 2011-05-11 19:33:18

+0

我需要限制用戶可以做什麼,並且我想將其轉換爲非英語語言。 – Ayoub 2011-05-11 19:33:39

回答

2

我建議你看一看一些概念用於像Smarty這樣的模板系統並實現您自己的。例如,math template讓你像這樣進行操作:

{* $height=4, $width=5 *} 
{math equation="x + y" x=$height y=$width} 

你可以只搶math functions from here,如果你想的是如何創建它們的一般準則。由於使用eval()來進行計算,因此仍然存在問題。

此外,here is a class評估RPN(反向波蘭標記法),以支持運營商:+, - , *, /, IF, THEN, SWAP, DUP, =, <>, >, <. >=<=

+1

+1 RPN非常棒 – Ryan 2011-05-11 20:22:52

1

那麼,你也可以用PHP編寫這些小腳本並使用eval來執行它們。但是,因爲這就像打開潘多拉的盒子一樣,所以你應該真的知道你可以信任通過的代碼,然後才考慮這是一個可行的選擇(即這很危險,尤其是如果這些公式是由用戶輸入的 - 我會從未使用當用戶提供要執行的代碼時)。

另一個選擇(可能更安全)是使用某種形式的JavaScript解釋器來執行片段。我知道有2個PHP項目可能會有所幫助(即使它們似乎處於休眠狀態):j4p5phpjs。如果你可以安裝擴展,那麼PECL with SpiderMonkey可能是更好的選擇。