2015-04-03 61 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