我的语言是越南语,所以我遇到了从相关关键字中获取确切字词的问题。我有一个字符串和一个关键字:
$mystring = "từ khóa a,từ khóa b, từ khóa c";
$mykeyword = "tu khoa b";
如何使用$mykeyword
从từ khóa b
获取$mystring
?
谢谢!
答案 0 :(得分: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。
您还可以使用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"
但是,正如您所看到的,ừ
没有正确翻译。