我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

php获取文件名出现乱码的解决方法-创新互联

如何解决php获取文件名乱码问题?

叙永网站建设公司成都创新互联公司,叙永网站设计制作,有大型网站制作公司丰富经验。已为叙永数千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的叙永做网站的公司定做!

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了

php文件使用的是UTF-8编码,如果没有猜错APACHE处理用的应该是GBK。想明白了这个问题,就去查找相关的教程了,索性找到了iconv这个函数。

函数原型:string iconv ( string in_charset, string out_charset, string str )
使用例子:$content = iconv(“GBK”, “UTF-8”, $content);
这个例子的作用就是将$content从GBK转换成UTF-8编码。

乱码问题关键代码:
复制代码 代码如下:

$name=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获取文件名乱码问题的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:php获取文件名出现乱码的解决方法-创新互联
当前链接:http://mswzjz.cn/article/dssdgj.html

其他资讯