2015-07-12 80 views
1

我的語言是越南語,所以我在從相關關鍵字中獲取確切單詞時遇到問題。我有一個字符串和一個關鍵字:如何用相關的關鍵字獲取字符串中的單詞?

$mystring = "từ khóa a,từ khóa b, từ khóa c"; 
$mykeyword = "tu khoa b"; 

如何使用$mykeyword擺脫$mystringtừ khóa b

謝謝!

+1

你可以試試這個答案在這裏 http://stackoverflow.com/questions/1008802/converting-symbols-accent-letters-to-english-alphabet –

回答

1

我相信你想做的事情叫做UTF-8規範化。

This post解釋了一些基礎。試試這個:現在

php > $mystring = "từ khóa a,từ khóa b, từ khóa c"; 
php > $mykeyword = "tu khoa b"; 
php > var_dump(transliterator_transliterate('Any-Latin; Latin-ASCII; [\u0080-\u7fff] remove', $mystring)); 
string(30) "tu khoa a,tu khoa b, tu khoa c" 
php > 

,你可以使用正常的字符串處理函數,看是否$mykeyword包含內$mystring。請注意,沒有ASCII轉換的字符將被刪除。

請注意,爲此,您需要安裝PHP intl模塊(通常是一個名爲php5-intl的程序包)。見here

您還可以使用Normalizerpreg_replace()剝離口音:

php > var_dump(preg_replace('/\p{Mn}/u', '', Normalizer::normalize($mystring, Normalizer::FORM_KD))); 
string(30) "tu khoa a,tu khoa b, tu khoa c" 
php > 

另一種方法是使用iconv()

php > var_dump(preg_replace('/[^a-zA-Z0-9 -]+/', '', iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $mystring))); 
string(25) "t khoa at khoa b t khoa c" 

然而,正如你所看到的,沒正確翻譯。

+0

爲什麼我看到_「**致命錯誤** :調用未定義的函數transliterator_transliterate()在** C:\ xampp \ htdocs \ ... \ index.php ** ** ** ** ** ** ** ** – 5ervant

+0

因爲你需要'intl'模塊:)請參閱[這裏](https://stackoverflow.com/questions/23431788/how-to-install-intl-php-extension-with-wamp-server)瞭解如何啓用它在WAMP上。 – Will

+0

您是否認爲該模塊已安裝在大多數共享網絡主機上? – 5ervant

相關問題