重命名目录中的所有文件时前两个文件的警告 5 和 32

Warnings 5 and 32 on first two files while renaming all files in a directory

我做了一个简单的图像重命名应用程序。它在每个图像名称后连续添加一个数字以区分它们。但问题是,当这个 PHP 应用程序运行时,我收到两个警告,我认为因此 $i 值以 3 开头,例如图像 3、图像 4……

但我希望它以 1 开头。如图像 1、图像 2……

我得到的警告是

所以我的问题是:

  1. 为什么会产生这些警告?

  2. 如何在不收到任何警告的情况下执行此 PHP 代码?

    $目录='c:/xampp/htdocs/practice/haha/'; echo getcwd().''; $i=1; 如果(is_dir($dir)){ echo 目录名($dir); $file=opendir($dir);

     while(($data=readdir($file))!==false){
      $info=pathinfo($data,PATHINFO_EXTENSION);
        echo $data;
         //echo pathinfo($data,PATHINFO_BASENAME).'</br>';
         //echo basename(pathinfo($data,PATHINFO_BASENAME),'.jpg').'</br>';
         rename($dir.$data,$dir.'mat '.$i.'.jpg');
          echo $i.'</br>';
         $i++;
    
     }
    

    }

从循环中排除隐含的 ... 自动目录条目,因为它们无论如何都不能重命名。这就是错误的来源; .(当前目录)当然在您自己的代码中使用,并且 ..(parent 目录)在 child 打开时无法重命名。