You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP正则表达式检测上传文件名是否包含德语变音符号?

解决PHP正则检测文件名含德语变音符号的问题

你的代码存在三个核心问题:正则缺少定界符、逻辑完全偏离目标、未处理UTF-8多字节字符,导致无法正确检测德语变音符号。

正确代码实现

直接检测文件名中是否存在任意德语变音符号(ä、ö、ü、Ä、Ö、Ü、ß)即可,修改后的代码如下:

if (preg_match('/[äöüÄÖÜß]/u', $file_name)) {
    $file['error'] = __('WARNING: Invalid file name. German umlauts are not allowed.', 'wp-file');
}

关键说明

  • 添加正则定界符:PHP的preg_match要求正则表达式必须用定界符(如/)包裹,否则会抛出语法错误。
  • 修正匹配逻辑:原正则的断言和分组逻辑完全错误,我们只需要直接匹配是否存在目标变音字符即可,无需复杂的前后限制。
  • UTF-8修饰符u:德语变音属于多字节UTF-8字符,添加u修饰符能确保正则正确识别这些字符,避免匹配失效。

内容的提问来源于stack exchange,提问作者Heena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:13:11