php str_replace for danish char's

问题描述 投票:2回答:1

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

我用它来删除丹麦字符

$patterns = array('å', 'æ', 'ø');
$replacements = array('/x7D', 'X', '/x7C');
echo str_replace($patterns, $replacements, 1554896020A2å.pdf);
php preg-replace str-replace
1个回答
1
投票

您在字符串中的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}+/uis,然后使用变音符号,则可以将preg_replace正则表达式与a一起使用。 i用于不区分大小写的匹配,如果不需要则删除。

© www.soinside.com 2019 - 2024. All rights reserved.