gpt4 book ai didi

php - 比较两个字符串并忽略(但不替换)重音。 PHP

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

我有(例如)两个字符串:

$a = "joao";
$b = "joão";

if ( strtoupper($a) == strtoupper($b)) {
echo $b;
}

我希望它是真实的,即使是强调。但是我需要它来忽略重音而不是替换,因为我需要它来回显“joão”而不是“joao”。

我看到的所有答案都将“ã”替换为“a”,而不是使比较为真。我一直在阅读有关对其进行规范化的信息,但我也无法使其正常工作。有任何想法吗?谢谢你。

最佳答案

只需将重音转换为其非重音对应部分,然后比较字符串。我的答案中的功能将为您删除重音符号。

function removeAccents($string) {
return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8'))), ' '));
}

$a = "joaoaaeeA";
$b = "joãoâàéèÀ";

var_dump(removeAccents($a) === removeAccents($b));

输出:

bool(true)

Demo

关于php - 比较两个字符串并忽略(但不替换)重音。 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680624/

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