我要从字符串中删除丹麦特殊字符,我有这样的字符串1554896020A2a¿.pdf丹麦字符是用于删除丹麦字符的“æøå”,我正在使用 str_replace ,我成功删除了这两个“æø”字符,但我不知道这个“å”没有从字符串中删除。谢谢您的帮助。
我已使用它删除了丹麦字符
$patterns = array('å', 'æ', 'ø');
$replacements = array('/x7D', 'X', '/x7C');
echo str_replace($patterns, $replacements, 1554896020A2å.pdf);
答案 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_replace
与a
一起使用正则表达式模式。 i
用于不区分大小写的匹配,如果不需要,请删除。