如何使用相关关键字获取字符串中的单词?

时间:2015-07-12 09:34:44

标签: php

我的语言是越南语,所以我遇到了从相关关键字中获取确切字词的问题。我有一个字符串和一个关键字:

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

如何使用$mykeywordtừ khóa b获取$mystring

谢谢!

1 个答案:

答案 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

您还可以使用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"

但是,正如您所看到的,没有正确翻译。