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

PHP5.4升级至7.4:ereg_replace转preg_replace后文件上传异常

解决PHP7.4中preg_replace替换ereg_replace后文件扩展名匹配失败问题

问题原因

你在替换ereg_replace为preg_replace时,给正则表达式添加了分隔符,但分隔符前后的空格是多余的,导致正则无法正确匹配文件名格式。比如对于test.jpg这类正常文件名,正则/ ^.+\\.([^.]+)$ /要求字符串开头必须有空格、结尾也必须有空格,显然不符合实际文件名结构,因此提取出的扩展名$ext不正确,最终触发了扩展名不匹配的警告。

修复方案

方案1:修正正则表达式

去掉分隔符前后的空格,还原正确的正则匹配逻辑:

$ext = preg_replace("/^.+\\.([^.]+)$/", "\\1", $file2);

方案2:使用更可靠的内置函数

推荐直接使用PHP专门用于解析文件路径的pathinfo函数,比正则表达式更稳定且可读性更高:

$ext = pathinfo($file2, PATHINFO_EXTENSION);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:41:12