php的rename()出错 (code: 123)

碰到的错误:

rename(/54K56Zeo5bqX5Y%2Bz5L, D:\phpStudy\WWW\test/1/���ŵ����Ͻ�?�����ů����һ����ÿ����һ�ݡ�.jpeg): �ļ�����Ŀ¼�������﷨����ȷ�� (code: 123)

可能的原因是:名称字符串中含有特殊字符,例如emoji表情;如果是在windows环境下测试,还要转回gbk编码;

// 剔除emoji表情
$preg = '/\\\ud([8-9a-f][0-9a-z]{2})/i';
$strPregRes = (preg_replace($preg, '', json_encode($new_name, true)));
$new_name = json_decode($strPregRes, true);

// 如果是windows环境,gbk
if (is_windows....){ 
    $new_name = mb_convert_encoding($new_name, 'gbk', 'utf-8');
}

// 重命名
rename($old_name, $new_name);

 

posted @ 2020-05-29 16:50  一粒小米-博客  阅读(6079)  评论(0编辑  收藏  举报