星期日, 十一月 25, 2007

PHP: 英文的數字值 轉換成 阿拉伯數字的值 程式

這星期臨時需要一個將英文的數字值, 轉換成 阿拉伯數字的程式, 發現怎麼找都是 數字 => 英文, 就是找不到 英文 => 數字.(需求就是同 English-Number Translator 這篇).

大致要做的就是如下的例子:

six => 6
negative seven hundred twenty nine => -729
one million one hundred one => 1000101 

找不到就只好自己寫一個, 主要是用下面這個 Array 來做, 意思就是不在此 Array 的, 此 function 就沒辦法做轉換了.(超過 billion 的, php 的 integer 長度也不夠, 不然應該是直接加進 array mapping 就可以動了)

$english2number = array(
'negative' => -1,
'zero' => 0,
'one' => 1,
'two' => 2,
'three' => 3,
'four' => 4,
'five' => 5,
'six' => 6,
'seven' => 7,
'eight' => 8,
'nine' => 9,
'ten' => 10,
'eleven' => 11,
'twelve' => 12,
'thirteen' => 13,
'fourteen' => 14,
'fifteen' => 15,
'sixteen' => 16,
'seventeen' => 17,
'eighteen' => 18,
'nineteen' => 19,
'twenty' => 20,
'thirty' => 30,
'forty' => 40,
'fifty' => 50,
'sixty' => 60,
'seventy' => 70,
'eighty' => 80,
'ninety' => 90,
'hundred' => 100,
'thousand' => 1000,
'million' => 1000000,
'billion' => 1000000000,
);

使用方法: English2ArabicNumeral('one hundred thousand and thirty four hundred') => 103400

某長輩指導, 程式要 Release 要記得寫 License, 所以挑一個最短的 License 來寫, 就選 MIT License 吧~

不過, 這類 Release, 我是比較偏好 GPL, 希望有人改良程式, 可以告訴我~, 但是 GPL 太長了.. 放棄.... 還是用 MIT 吧~ :P

目前程式只做整數轉換, 小數那些.. 放棄.. Orz.. 看有沒有善心人士肯幫我加上小數的轉換吧~~

完整程式如下:

相關標籤
Add this page to del.icio.us Add this page to Yahoo Taiwan's bookmark Add this page to MyShare

發表迴響

標題

內容 (限制 1000 字)

暱稱

電子郵件

個人網頁


 authimage


PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~