2011-03-08 101 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

相关问题