2014-11-24 79 views
0

ok。所以我有一個需要在字符串中找到的單詞的數組,並用它們的鍵(數組中的那個單詞)替換
str替換/ preg使用數組替換希伯來字的單詞

在英語中,這是有效的。

function replace_twophrase_words($string) { 

    $string = strtolower($string); 

    $replacements = array (
     'movers'    => 'Moving Services', 
     'home-moving'   => 'Home Moving', 
     'commercial-moving'  => 'office-moving', 
    ); 


    $string = str_replace($replacements, array_keys($replacements), $string); 
} 

希伯來語陣列(在評論中問道):

$replacements = array (
    'עיצוב-פנים'   => 'עיצוב פנים', 
    'עיצוב-פנים'   => 'מעצבת פנים', 
    'עיצוב-פנים'   => 'עיצוב משרדים', 
); 

但是...看來,這並不在希伯萊在所有的工作...
任何人都可以扔指針/一些示例代碼?

的preg_replace可能是一個偉大的更換,但我不知道怎麼寫的模式來這樣的情況(所以它也是可選)

感謝你的幫助。

+1

這是PHP代碼? (你應該標記語言) – Scimonster 2014-11-24 18:39:12

+0

你應該發佈一個單獨的代碼塊,用希伯來語單詞顯示代碼。可以幫助人們幫助你。 – 2014-11-24 19:05:11

+0

done&done ..感謝您的評論。例如,標記了lang和添加的Heb數組。 – 2014-11-24 20:40:02

回答

0

您需要使用mb_ereg_replace

setlocale(LC_CTYPE, 'en_US.UTF-8'); 
header('Content-Type: text/plain; charset=utf-8'); 
echo mb_ereg_replace('עיצוב-פנים', 'עיצוב פנים', 'Hebrew string is here: עיצוב-פנים ; and back to Latin.'); 

這是因爲希伯來字母由多個字節和str_reaplce和的preg_replace(默認)不明白這些。

+0

這個函數只需要字符串,所以你需要循環你的替換列表:foreach。 – 2014-11-28 23:26:06

+0

去試試看... brb – 2014-11-29 08:55:26

+0

*有沒有反饋意見? – 2014-12-02 03:08:12