gpt4 book ai didi

php - strtr 行为怪异 - 从字符串中删除变音符号

转载 作者:可可西里 更新时间:2023-11-01 00:43:07 25 4
gpt4 key购买 nike

我很难从某些 $string 中删除变音符号。我的代码是

<?php
$string = "Příliš žluťoučký kůň úpěl ďábelské ódy.";
$without_diacritics = strTr($string, "říšžťčýůúěďó", "risztcyuuedo");
echo $without_diacritics;

虽然预期输出将是 Prilis zlutoucky kun upel dabelske ody。

相反,我收到了非常奇怪的回复:

Puiszliuc uuluueoudoks� ku�u� s�pd�l d�scbelsks� s�dy.

我认为这可能是多字节字符的问题,但我发现 strtr 是多字节安全的。我的假设错了吗?我错过了什么?

最佳答案

问题是您的输入翻译字符串是输出翻译字符串的两倍(因为 Unicode)并且 strtr() 使用字节而不是字符;在这种情况下,翻译数组会更好:

$string = "Příliš žluťoučký kůň úpěl ďábelské ódy.";

echo strtr($string, [
'ř' => 'r',
'í' => 'i',
'š' => 's',
'ž' => 'z',
'ť' => 't',
'č' => 'c',
'ý' => 'y',
'ů' => 'u',
'ú' => 'u',
'ě' => 'e',
'ď' => 'd',
'ó' => 'o'
]);

输出:

Prilis zlutoucky kuň upel dábelské ody.

Demo

关于php - strtr 行为怪异 - 从字符串中删除变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28333931/

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