preg_replace多重替换错误

时间:2012-07-25 14:02:34

标签: php regex replace

我正在尝试创建一个在上传文件后重命名文件的函数,但是这个函数不起作用,我不明白为什么。

这是一个简单的示例代码:

echo $pathinfo["filename"]."<br/>";
$pathinfo["filename"] = preg_replace('/[ÝŶŸỲỸỶỴ]/', "Y", $pathinfo["filename"]);
echo $pathinfo["filename"]."<br/>";

哪个输出:

JPEG xè.w_.a(m)aaỶle_oui_
JPEG xY�.w_.a(m)aaYYYle_oui_

è转化为??并且Ỷ变成了YYY!?

我真的不明白为什么我没有'JPEGxè.w_.a(m)aaYle_oui _'。

谢谢大家

1 个答案:

答案 0 :(得分:0)

如果要抓取Unicode字符,则应该为正则表达式添加u修饰符。

echo $pathinfo["filename"]."<br/>";
$pathinfo["filename"] = preg_replace('/[ÝŶŸỲỸỶỴ]/u', "Y", $pathinfo["filename"]);
echo $pathinfo["filename"]."<br/>";