php中unlink删除中文名文件会出错
<?phpfunctiondeldir($dirname){if(file_exists($dirname)){if($dir_handle=@opendir($dirn...
<?php
function deldir($dirname){
if(file_exists($dirname))
{
if($dir_handle=@opendir($dirname))
{
while($file=readdir($dir_handle))
{
if($file!='.'&&$file!='..')
{
$subfile=$dirname."/".$file;
if(is_dir($subfile))
deldir($subfile);
if(is_file($subfile))
unlink($subfile);
}
}
closedir($dir_handle);
rmdir($dirname);
}
}
}
/*有个文件夹aaa,里面有个txt文件“我是谁”,写个删除目录函数,可以删除整个aaa文件夹(包括里面的txt文件),但是单独用unlink删aaa除文件夹里面的中文名的文件就会出错,是什么问题??代码是UTF-8的,用iconv转换成GB2312就可以删除,但是上面的函数里的unlink($subfile)不用转换也可以删除,为什么?*/
deldir('aaa');//iconv('UTF-8','GB2312','aaa/我是谁.txt')
unlink('aaa/我是谁.txt');
?> 展开
function deldir($dirname){
if(file_exists($dirname))
{
if($dir_handle=@opendir($dirname))
{
while($file=readdir($dir_handle))
{
if($file!='.'&&$file!='..')
{
$subfile=$dirname."/".$file;
if(is_dir($subfile))
deldir($subfile);
if(is_file($subfile))
unlink($subfile);
}
}
closedir($dir_handle);
rmdir($dirname);
}
}
}
/*有个文件夹aaa,里面有个txt文件“我是谁”,写个删除目录函数,可以删除整个aaa文件夹(包括里面的txt文件),但是单独用unlink删aaa除文件夹里面的中文名的文件就会出错,是什么问题??代码是UTF-8的,用iconv转换成GB2312就可以删除,但是上面的函数里的unlink($subfile)不用转换也可以删除,为什么?*/
deldir('aaa');//iconv('UTF-8','GB2312','aaa/我是谁.txt')
unlink('aaa/我是谁.txt');
?> 展开
3个回答
展开全部
对于文件名称或者路径,如果不是逼不得已,最好不要使用中文,特别是在utf8编码下
否则,只会给自己找麻烦,这不,你纠结得到这里提问来了吧
否则,只会给自己找麻烦,这不,你纠结得到这里提问来了吧
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该你的路径有问题,检查一下,最好把出错的提示信息发上来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询