在搜索字符串中创建可能的字符数组

时间:2015-01-12 19:25:56

标签: php utf-8 ascii special-characters diacritics

我试图在用户提交搜索后创建一系列可能的字符。

如果我搜索用户Draven,我希望我的数组看起来像这样(以及我缺少的任何其他字符)

Array
(
    [0] => Dräven
    [1] => Dräven
    [2] => Dr&aUML;ven
    [3] => Draven
)

这样做有简单(简短)的方法吗? 我唯一想到的就是一个长达500行的功能,这只是我需要的一半字符。

1 个答案:

答案 0 :(得分:0)

也许你可以采用另一种方式。不是将用户输入转换为每个可能的变体并进行比较,而是从搜索空间中删除变音符号并进行比较。

// Normalise data (remove accent marks)
// This requires the intl extension
// On debian: apt-get install php5-intl
$data = normalizer_normalize($data);

如果你这样做,你可能需要保留两批数据 - 一个作为原始未转换数据,再次标准化,用作搜索空间。