【问题标题】:PHP strtoupper bulk change file names in directoryPHP strtoupper批量更改目录中的文件名
【发布时间】:2017-05-19 04:05:21
【问题描述】:

我正在尝试将目录中的所有文件名更改为大写,但没有任何反应。文件名保持不变。这包括文件名和扩展名。我打开了错误报告,这是我得到的唯一警告:

警告:重命名(Parts/.,Parts/.):第 9 行 /var/www/site/img/upper.php 中的设备或资源忙

警告:重命名(Parts/..,Parts/..):第 9 行 /var/www/site/img/upper.php 中的设备或资源忙

期望的结果示例:abc.bmp --> ABC.BMP

代码:

<?php
 ini_set("display_startup_errors", 1); 
 ini_set("display_errors", 1);
 $directory="Parts";
 $files = scandir($directory);
 foreach($files as $key=>$name){
    $oldName = $name;
    $newName = strtoupper($name);
    rename("$directory/$oldName","$directory/$newName");
  }
?>

【问题讨论】:

标签: php


【解决方案1】:

您正在尝试移动与目录相关的元信息,请勿尝试将... 作为文件移动。

  • 单句.表示当前工作目录。
  • 双句号..表示当前工作目录的父级。

    $directory = "Parts";
    $files = scandir($directory);
    foreach($files as $name){
        if ($name == '.' || $name == '..') {
           continue;
        }
        $newName = strtoupper($name);
        rename("$directory/$name", "$directory/$newName");
    }
    

【讨论】:

  • 就是这样!非常感谢您的帮助!
  • 这是一个更好的问题和答案。另一个像泥一样清澈。
猜你喜欢
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
相关资源
最近更新 更多