我的語言是越南語,所以我在從相關關鍵字中獲取確切單詞時遇到問題。我有一個字符串和一個關鍵字:如何用相關的關鍵字獲取字符串中的單詞?
$mystring = "từ khóa a,từ khóa b, từ khóa c";
$mykeyword = "tu khoa b";
如何使用$mykeyword
擺脫$mystring
từ khóa b
?
謝謝!
我的語言是越南語,所以我在從相關關鍵字中獲取確切單詞時遇到問題。我有一個字符串和一個關鍵字:如何用相關的關鍵字獲取字符串中的單詞?
$mystring = "từ khóa a,từ khóa b, từ khóa c";
$mykeyword = "tu khoa b";
如何使用$mykeyword
擺脫$mystring
từ khóa b
?
謝謝!
我相信你想做的事情叫做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。
您還可以使用Normalizer和preg_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"
然而,正如你所看到的,ừ
沒正確翻譯。
爲什麼我看到_「**致命錯誤** :調用未定義的函數transliterator_transliterate()在** C:\ xampp \ htdocs \ ... \ index.php ** ** ** ** ** ** ** ** – 5ervant
因爲你需要'intl'模塊:)請參閱[這裏](https://stackoverflow.com/questions/23431788/how-to-install-intl-php-extension-with-wamp-server)瞭解如何啓用它在WAMP上。 – Will
您是否認爲該模塊已安裝在大多數共享網絡主機上? – 5ervant
你可以試試這個答案在這裏 http://stackoverflow.com/questions/1008802/converting-symbols-accent-letters-to-english-alphabet –