作者:平凡的冰冰凝凝 | 来源:互联网 | 2020-08-30 15:29
php获取文件名乱码的解决方法:首先新建一个php文件;然后在获取文件名的代码后添加“iconv("UTF-8","gb2312",$name);”;最后保存即可。
代码如下:
$sFileName = “sda.php”;
$sOriginalFileName = $sFileName;
$sExtension = s str($sFileName, (strrpos($sFileName, ‘.’) + 1));//找到扩展名
$sExtension = strtolower($sExtension);
$sFileName = date(“YmdHis”).rand(100, 200).”.”.$sExtension; //这样就是我们的新文件名了,全数字的不会有乱码了哦。
以下是一些补充:
php上传中文文件名乱码解决方案
代码如下:
$filepath=”upload/”;
$name=$filepath.$_FILES[“upfile”][“name”];
while(file_exists($name)){
$temp=explode(“.”,$name);//分割字符串
$name=$temp[0].”0″.”.”.$temp[1];//主文件名后面加0
}
代码如下:
//iconv()函数是关键
if(move_uploaded_file($_FILES[“upfile”][“tmp_name”],iconv(“UTF-8″,”gb2312”,$name))){//处理…}
我的PHP编码是UTF-8,其中原因可能是因为操作系统是GBK的原因!
注意:我的服务器是windows xp、apache,估计xp字符集是gbk。因为我的php代码保存为utf-8格式的,在给文件名命名时会出现乱码的情况,所以可以用iconv()函数将原本的utf-8格式的文件名转换为gbk格式的。
php utf8编码 上传中文文件名出现乱码的解决方法
想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,我们可以用iconv函数对文件名进行重新编码就解决问题了。
代码如下:
header("Content-Type:text/html;charset=utf-8");
$submit = $_POST[‘submit‘];
if(isset($submit) && trim($submit) != ‘‘){
$file = $_FILES[‘file‘];
if(isset($file[‘tmp_name‘])){
$name = iconv(‘utf-8‘,‘gb2312‘,$file[‘name‘]); //利用Iconv函数对文件名进行重新编码
if(move_uploaded_file($file[‘tmp_name‘],$name)){
echo ‘文件上传成功!‘;
echo ‘图片信息:‘;
print_r($file);
}
}
}
相关参考:php教程
以上就是如何解决php获取文件名乱码问题的详细内容,更多请关注 第一PHP社区 其它相关文章!