2012-07-25 172 views
0

我試圖做一個函數,在文件上傳後重命名文件,但這個函數不起作用,我不明白爲什麼。preg_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_'。

謝謝大家

回答

0

如果你想抓住Unicode字符您應該添加u修改到你的正則表達式。

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

謝謝你,快速高效.. – Arthur 2012-07-25 15:07:23