php str_replace 丹麦字符

php str_replace for danish char's

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

我用它来删除丹麦字符

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

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

因此,您可以将此值添加到您的 patterns/replacements:

$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,则可以将 /a\p{M}+/ui 正则表达式模式与 preg_replace 一起使用。 i 用于不区分大小写的匹配,如果不需要则删除。