gpt4 book ai didi

php - 为什么 Normalizer::normalize (PHP) 不起作用?

转载 作者:可可西里 更新时间:2023-11-01 13:39:01 29 4
gpt4 key购买 nike

我正在尝试将包含“áéíóú”等字符的字符串规范化为“aeiou”以简化搜索。

在对 this question 的回复之后我应该使用 Normalizer 类来完成它。

问题是 normalize 函数什么都不做。例如,该代码:

<?php echo 'Pérez, NFC: ' . normalizer_normalize('Pérez', Normalizer::NFC) 
. ' NFD: ' .normalizer_normalize('Pérez', Normalizer::NFD)
. ' NFKC: ' .normalizer_normalize('Pérez', Normalizer::NFKC)
. ' NFKD: ' .normalizer_normalize('Pérez', Normalizer::NFKD)?>
<br/>
<?php echo 'aáàä, êëéè,'
. ' FORM_C: ' . normalizer_normalize('aáàä, êëéè', Normalizer::FORM_C )
. ' FORM_D: ' .normalizer_normalize('aáàä, êëéè', Normalizer::FORM_D)
. ' FORM_KC: ' .normalizer_normalize('aáàä, êëéè', Normalizer::FORM_KC)
. ' FORM_KD: ' .normalizer_normalize('aáàä, êëéè', Normalizer::FORM_KD)?>

显示:

Pérez, NFC: Pérez NFD: Pérez NFKC: Pérez NFKD: Pérez
aáàä, êëéè, FORM_C: aáàä, êëéè FORM_D: aáàä, êëéè FORM_KC: aáàä, êëéè FORM_KD: aáàä, êëéè

normalize 应该做什么?

---编辑---

这是陌生人。当从网络浏览器复制和粘贴结果时,在编辑器和原始页面中我可以看到:

FORM_D: aáàä, êëéè

在我可以看到的 stackoverflow 问题页面中(只是在代码示例模式下):

FORM_D: aáàä, êëéè

最佳答案

Normalizer with FORM_D 可以将变音符号从基本字符中分离出来,然后 preg_replace 可以消除变音符号:

$string = 'áéíóú';
echo preg_replace('/[\x{0300}-\x{036f}]/u', "", Normalizer::normalize($string , Normalizer::FORM_D));
//aeiou

关于php - 为什么 Normalizer::normalize (PHP) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527704/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com