我的语言是越南语,所以我在从相关关键字中获取确切单词时遇到问题。我有一个字符串和一个关键字:如何用相关的关键字获取字符串中的单词?
$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 –