Vergleicht zwei Zeichenfolgen und ignoriert Akzente (ersetzt sie jedoch nicht). PHP
P粉476046165
2023-08-17 16:16:51
<p>Ich erhalte (zum Beispiel) zwei Zeichenfolgen: </p>
<pre class="brush:php;toolbar:false;">$a = "joao";
$b = "joão";
if (strtoupper($a) == strtoupper($b)) {
echo $b;
}</pre>
<p>Ich hoffe, dass es trotz des Akzents stimmt. Ich brauche es jedoch, um Akzente zu ignorieren, anstatt sie zu ersetzen, da ich „joão“ anstelle von „joao“ ausgeben muss. </p>
<p>Alle Antworten, die ich gesehen habe, ersetzen „ã“ durch „a“, anstatt den Vergleich wahr zu machen. Ich habe über Normalisierung gelesen, aber ich kann es auch nicht zum Laufen bringen. Irgendwelche Ideen? Danke. </p>
我想分享一个优雅的解决方案,避免使用htmlentities,并且不需要手动列出所有字符替换。这是对这个帖子的php翻译。
输出:
只需将重音符号转换为它们的非重音对应部分,然后比较字符串。我答案中的函数将为您删除重音符号。
输出:
演示