2011-03-08 105 views
0

我意外地用PHP創建了一個文件,現在我無法刪除或重命名它。如何刪除文件名中包含多字節字符的文件?

該文件是一個名爲€%C2%9Dâ2™j299t™93.gif

編輯:我只能通過FTP訪問,主機是基於Linux的

編輯2:我甚至不能刪除它在目錄

+0

如果你說你的系統,什麼操作系統計算機運行的訪問可能有幫助。 – symcbean 2011-03-08 12:18:00

+0

你看到了什麼錯誤以及你怎麼刪除它... – AJJ 2011-03-08 12:19:15

+0

我想通過Cyber​​duck FTP客戶端刪除它,錯誤信息就是:刪除操作失敗。 – Tom 2011-03-08 12:20:02

回答

0

從PHP可以使用unlink功能如下:

<?php 
$filename="â€%C2%9Dâ2™j299t™93.gif"; 

unlink($filename); 
?> 

你一直有這個問題可能是與™的做ymbol被翻譯。如果您複製上面的代碼並將其粘貼到您的編輯器中,然後運行它,則應該刪除該文件,假定它是從與該文件相同的目錄運行的。

+0

這是行不通的,即使我用unlink('* .gif') – Tom 2011-03-08 12:48:14

0

下載Filezilla並將網站編碼設置爲強制執行utf-8。然後嘗試通過它刪除您的文件。

+0

這個文件沒有出現,如果我這樣做 – Tom 2011-03-08 12:56:19

+1

爲什麼不問問服務器管理員呢? – 2011-03-08 13:57:22

2

在命令行,寫:

ftp to.target.server 
del *93.gif 

如果您是文件的所有者,這應該工作(權限爲644)

+0

我收到此錯誤消息:550刪除目錄操作失敗。 – Tom 2011-03-08 12:45:39

+0

這是因爲這個答案最初使用'rm'而不是'del'。我已經糾正它,再次嘗試使用'del'。 – 2011-03-08 12:50:27

+0

即使使用'del *'我也會得到550刪除操作失敗。 – Tom 2011-03-08 12:58:01

0

我猜你不知道確切的文件名(因爲你的ftp客戶端沒有以正確的方式顯示它)。你可以遍歷文件。本示例將刪除其中包含字符%的所有文件。 仔細使用它:

$d = dir("."); 
while (false !== ($entry = $d->read())) { 
    if (strpos ($entry, '%') !== false) { 
     unlink ($entry); 
    } 
} 
$d->close(); 
+0

當然,你必須把它放到一個php文件中。 – vbence 2011-03-09 08:22:47

+0

是的,這對我也不起作用,謝謝 – Tom 2011-03-09 10:03:07

相關問題