php str_replace用于丹麦字符

时间:2019-04-10 11:51:57

标签: php preg-replace str-replace

我要从字符串中删除丹麦特殊字符,我有这样的字符串1554896020A2a¿.pdf丹麦字符是用于删除丹麦字符的“æøå”,我正在使用 str_replace ,我成功删除了这两个“æø”字符,但我不知道这个“å”没有从字符串中删除。谢谢您的帮助。

我已使用它删除了丹麦字符

$patterns = array('å', 'æ', 'ø');
$replacements = array('/x7D', 'X', '/x7C');
echo str_replace($patterns, $replacements, 1554896020A2å.pdf);

1 个答案:

答案 0 :(得分:2)

字符串中的a不是单个代码单位,而是由两个代码单位\xCC\x8A组成的代码点。

因此,您可以将此值添加到您的模式/替换中:

$patterns = array('å', "a\xCC\x8A", "A\xCC\x8A", 'Å', 'æ', 'ø');
$replacements = array('/x7D', '/x7D', '/x7D', '/x7D', 'X', '/x7C');
echo str_replace($patterns, $replacements, '1554896020A2å.pdf');
// => 1554896020A2/x7D.pdf

请参见PHP demo

在PHP 7中,您可以使用"a\u{030A}" / "A\u{030A}"将这些a字母与其变音符号进行匹配。

请注意,如果您决定使用正则表达式并匹配任何/a\p{M}+/ui和后跟变音符号,则可以将preg_replacea一起使用正则表达式模式。 i用于不区分大小写的匹配,如果不需要,请删除。