PHP重命名和非法文件名

时间:2013-06-11 11:15:07

标签: php

我在重命名现有文件时遇到了一个奇怪的问题:

我的服务器上有一系列需要通过文件选择对话框选择然后重命名的html文件。

打开对话框的表单通过JavaScript调用并正确打开对话框,允许选择文件并重命名,直到我遇到包含一些(可能是)非法字符的文件。此时我收到文件未找到错误。

重命名的源和目标是相同的,只是需要更改的文件名。

我的代码适用于其他文件,如下所示(为了清晰起见,重命名了变量):

$dest_path = realpath(dirname(dirname(__FILE__))) . $miDestination ;
$targefile = $dest_path  .  basename( $_FILES["thesrcfile"]["name"]);
$newName = $dest_path . $anewname . ".html";
rename($targefile,$newName);

如上所述,这可以正常工作,直到我找到一个名称如下的文件:

These are "very" strangely-named file's!.html

从此我得到一个文件未找到错误。所有权限都是正确的,并且此代码已经正常工作,具有更明智的命名文件。顺便说一句,我无法控制文件的名称,它们可以完全包含任何字符。

有人可以建议一种方法来让重命名功能将这些文件识别为现有文件,并相应地重命名它们吗?

非常感谢

最高

1 个答案:

答案 0 :(得分:0)

trim()str_replace()所有非法加入$ anewname var