使用PHP重命名带空格的文件

更新时间:2024-04-26 下载TXT文档 下载Word文档

我的服务器上已经存在名称中带有空格的文件。 我想用下划线重命名它们。 我尝试在空格前加一个斜杠,并尝试用%20替换空格。 PHP仍然给我:

No such file or directory.

这是我的代码:

$dir = './';
$dhandle = opendir($dir);
$old_files = array();

if ($dhandle) {
    while (false !== ($fname = readdir($dhandle)))
    {
        if ( ($fname != '.') && ($fname != '..') )
        {
            $old_files[] = (is_dir("./$fname" )) ?"(Dir) {$fname}" : $fname;
        }
    }
    closedir($dhandle);
}

$new_files = str_replace(' ', '_', $old_files);
$x = 0;
foreach($old_files as $file)
{
    rename(rawurlencode($file), $new_files[$x++]);
}

如果您不尝试重命名,您确定不会出现此类文件错误吗?调试的一个很好的第一步是简化问题,直到问题不再存在。

我不能告诉您是否这样做,因为起初它没有运行,但是您绝对不应该在本地文件名上使用rawurlencode(),这样可以确保一切正常。另外,我很好奇您对"(Dir) {$fname}"所做的事情-这似乎也是一个错误。我怀疑您可能想做的是: 短码网=DuanMa.NET

if ( ($fname != '.') && ($fname != '..') && !is_dir("./$fname" )) 
{
  $old_files[] = $fname;
}

但是,您还应该意识到,dir返回的是相对于所传递目录的文件名,因此您需要确保is_dir()和重命名操作将其考虑在内。因此,您很可能想说:

is_dir($dir.'/'.$fname);

rename($dir.'/'.$file,$dir.'/'.$new_files[$x++]);
  • 我需要$ dir。/。 谢谢!

我曾经产生了一个快速的技巧,以清理一些名称不正确的文件。这是我的代码;如果需要,请使用它。

<?php
    $dir = './';
    $dhandle = opendir($dir);
    $old_files = array();

    if ($dhandle) {
    while (false !== ($fname = readdir($dhandle))) {
        if ( ($fname != '.') && ($fname != '..') && !is_dir("./$fname" ))
             $old_files[] = $fname;
       }
       closedir($dhandle);
    }

    foreach($old_files as $file)
    {
        $new_name = str_replace(',', '', str_replace('&', '', str_replace(' ','',$file)));
        rename("./".$file,"./".$new_name);
        echo $new_name."\
";
    }

添加:

print"$file\
";

在重命名语句之前,先查看您得到的内容。

另外,在将文件添加到数组之前,应在if语句中添加strstr($ fname,''),以便仅对包含空格的文件名进行操作:

if ( ($fname != '.') && ($fname != '..') && !is_dir("./$fname" ) && strstr($fname, ' ')) 
{
  $old_files[] = $fname;
}

以上就是短码网小编为大家整理的《使用PHP重命名带空格的文件》相关内容,希望大家喜欢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!

使用PHP重命名带空格的文件》文档下载仅供参考学习,下载后请在24小时内删除。

转载注明出处:https://www.duanma.net/article/b4e8bc1d756.html

回到顶部