2015-04-03 63 views
1


我无法使用unlink()特殊字符删除文件。
我的文件名包含例如”,”并没有发生 当我使用的unlink()。
我试图使用和addslashes和iconv,但它并不能帮助..
任何人可以帮助我吗?
文件名例如:aaaż'.pdfPHP取消链接文件中的特殊字符文件名

@Solution

$newFilename = str_replace('\\','',$filename); 
$newFilename = iconv("UTF-8","Windows-1250",$newFilename); 
unlink($newFilename); 
+0

而不是试图删除有特殊字符的文件,尝试上传时删除特殊字符。它会为你节省很多麻烦.. – Naruto 2015-04-03 11:24:40

+0

但文件已经保存在目录中(我不上传它),我必须在代码结尾删除它。 – Rafael 2015-04-03 11:27:22

+0

也许列出几个无法删除的示例文件名? – sradforth 2015-04-03 11:27:32

回答

0

不能重现检查下面的例子:

$filename = ",;\\'\"{}$!^#\n\t.txt"; 
touch($filename); 
unlink($filename); 

它按预期工作。

+0

对不起,我的错误 - 问题是当我与波兰语字符组合时,例如:aaaż'.pdf(自己创建,没有触摸)。 – Rafael 2015-04-03 11:39:03

+0

我不知道为什么,但是现在当我将iconv()与str_replace()结合使用时,感谢您的帮助。 – Rafael 2015-04-03 11:50:30

+0

对不起,我刚刚读过这个。让我试试你发布的波兰文件名.. – hek2mgl 2015-04-03 11:51:03

0
$filename = 'my\,file\,name'; 
unlink($filename); 

尝试添加antislashes,它应该工作。

addslashes()函数不会将反斜杠添加到“,”。

使用str_replace()函数来做到这一点:

$filename = str_replace(',', '\,', $filename); 
+0

已经尝试过,没有工作。 – Rafael 2015-04-03 11:40:17

+0

你确定该文件存在?你有权删除它吗? – 2015-04-03 11:43:58

+0

是的,我敢肯定,我自己找到了解决方案。感谢大家的帮助。 – Rafael 2015-04-03 11:51:35