我有這樣的代碼:如何確認一個字符串是一個整數的有效base36?
$alias = 'myalias';
echo "<pre>";
echo "
ALIAS: $alias
ROUND: ", intval($alias, 36) , "\n" ,
"AGAIN: ", base_convert(intval($alias, 36), 10, 36)
;
echo "<hr>";
$alias = '27xk3q';
echo "<pre>";
echo "
ALIAS: $alias
ROUND: ", intval($alias, 36) , "\n" ,
"AGAIN: ", base_convert(intval($alias, 36), 10, 36)
;
這用來工作,並且仍然沒有我家的Mac電腦上。輸出是:
ALIAS: myalias
ROUND: 2147483647
**AGAIN: zik0zj**
ALIAS: 27xk3q
ROUND: 134255366
AGAIN: 27xk3q
但是,當我上傳到我的Linux服務器,它回聲不同的東西!
ALIAS: myalias
ROUND: 49962861028
**AGAIN: myalias**
ALIAS: 27xk3q
ROUND: 134255366
AGAIN: 27xk3q
正如你看到的,「myalias
」字符串只是打印作爲本身在Linux版本的PHP。
如果這不起作用或是錯誤的代碼,我需要知道一個檢查字符串是否是整數的有效base36版本的萬無一失的方法。
謝謝!
這看起來像我在湯裏。我繼承了一個數據庫,以前的程序員認爲在表中使用base36版本的序列作爲主鍵是個好主意。他沒有保存相應的整數。 該應用程序的編程方式是該列默認爲自動字符串(相關序列的base36),但用戶可以選擇輸入自定義字符串。 我現在需要區分哪些是自動整數轉換爲base36字符串的等價物,哪些是由用戶輸入的自定義字符串。 任何想法?謝謝! – PKHunter 2011-06-05 16:03:04
@PKHunter:恩,我不認爲這甚至是可能的 – zerkms 2011-06-05 21:58:18