2015-04-03 6 views
1


Я не могу удалить файл со специальными символами, используя unlink().
Мое имя файла содержит, например,»и ничего не происходит, когда я с помощью Unlink().
Я пытался использовать addslashes и Iconv, но это не помогает ..
Может кто-нибудь мне помочь?
файла например: aaaż'.pdfPHP файл разблокировки со специальными символами в имени файла

@Solution

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

Вместо того, чтобы пытаться удалить файлы со специальными символами, попробуйте удалить специальные символы при загрузке .. Это сэкономит вам много неприятностей .. – Naruto

+0

Но файл уже сохранен в каталоге (я не загружаю его), и я должен удалить его в конце кода. – Rafael

+0

Возможно, укажите пару примеров имен файлов, которые нельзя удалить? – sradforth

ответ

0

не удается воспроизвести это Проверьте следующий пример:.

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

Работает должным образом.

+0

Извините, моя ошибка - проблема в том, когда я совмещаю 'с полами, например: aaaż'.pdf (создайте его самостоятельно, без прикосновения). – Rafael

+0

Я не знаю почему, но теперь, когда я совмещаю iconv() с str_replace(), он работает. Спасибо за помощь. – Rafael

+0

Извините, я просто прочитал это. Позвольте мне попробовать с именем польского файла, которое вы опубликовали. – hek2mgl

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

Попробуйте добавить противоскользящие устройства, они должны работать.

Функция addslashes() не добавляет антибликов в ",".

Использование str_replace(), чтобы сделать это:

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

Уже пробовал, не работал. – Rafael

+0

Вы уверены, что файл существует? И есть ли у вас разрешение на его удаление? –

+0

Да, я уверен, я нашел решение самостоятельно. Спасибо всем за помощь. – Rafael

Смежные вопросы