2011-11-21 52 views
-2

的話我有一個像這樣在MySQL數據庫中的表:如何更換全自動的PHP

|word|replace| 
-------------- 
|sa | sap | 
|ri | sip | 
|na | sup | 
-------------- 

所以,如果我提交了一句話:sarina,它會自動改變:sapsipsup

我已經像這樣嘗試:

$word= array("sa", "ri", "na"); 
$replace = array("sap", "sip", "sup"); 

$str = str_split("sarina",2); 
$result = str_replace($word, $replace, $str); 
echo $result; 

但是,它不是動態的,我的意思是..我應該先將「sarina」分成2個字符。 如何使任何單詞自動變得簡單?

在此先感謝。

+0

我們可以看到代碼與字=>代替 –

+0

是的,先生。我想讓它自動替換 – wdyz

+0

你試過了什麼?你有什麼問題?連接到桌子?查詢其內容?提取其內容?調用'str_replace'?你必須更具體。 –

回答

5

你基本上通過標記你的問題str-replace回答自己。您只需要從數據庫中查詢所有條目,將它們放入兩個數組中,然後使用這兩個數組在您的字符串上運行str_replace()。事情是這樣的:

$result = mysql_query('SELECT `word`, `replace` FROM `table`'); 
$find = array(); 
$replace = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $find[] = $row['word']; 
    $replace[] = $row['replace']; 
} 
$yourstring = str_replace($find, $replace, $yourstring); 

注:沒有錯誤這裏處理等...因爲它不使用該代碼,只能作爲靈感。

+2

'$ row ['find']'應該是'$ row ['word']' – Toto

+0

謝謝。我糾正了這一點。 –

+0

謝謝。我已經試過了,它的工作原理:-) – wdyz