2011-07-21 19 views
4

有沒有辦法將變音符號從表示ae, Ae, oe, Oe, ue, Uess轉換回原始變音?重要的是,拼寫觀察像「teuer」!例如,術語「teuer」必須不改變「teür」中的。謝謝!PHP將變音器從例如「ue」改爲「ü」

+6

不,我寧願不這樣認爲。你需要一個包含所有例外的字典。 –

+1

你需要一個所有可接受單詞轉換的字典,並確保不要轉換partials(la'clbuttic')。 – Andrew

+0

「回到原始的變音符號」 - 你是否首先轉換它們?聽起來像你可以保留這些信息。 – Dave

回答

2
iconv("utf-8","ascii//TRANSLIT",$input); 

擴展example

OR

echo strtr(utf8_decode($input), 
      utf8_decode('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'), 
      'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy'); 

參考this問題。

0

我建議你轉換「ue」,「oe」等等的出現的每個排列組合。 通過每個置換我的意思是如果有3次出現,首先只替換第一次,然後只有第二次,然後只有第三次,然後第一次和第二次等。

接下來,檢查結果是否包含在標準的拼寫檢查字典中。藉此,您不必爲例外創建自己的字典。

一個詞表例如可以發現ftp://ftp.ox.ac.uk/pub/wordlists/german/words.german.Z

0

這將是相當棘手得到的權利。當然沒有任何內置的功能來做到這一點。

我見過的大部分例子都是在相反的方向上工作的(例如,帶有重音字符的字符串並用它們的ASCII碼替換它們)。在我看到它完成的地方,總是提供一個字符及其等價物的地圖,並掃描字符串進行替換。

strtr() function的PHP手冊頁提供了一些你需要做的事情的很好的例子,但是你的要求是避免出現特定的異常,這會使整個過程變得非常複雜。