微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在php中重命名文件夹中所有图像的最佳方法是什么?

如何解决在php中重命名文件夹中所有图像的最佳方法是什么?

我是 PHP 新手,想知道如何在 PHP重命名文件夹中的所有图片

我有一个包含不同图片文件夹,所有图片都命名为:

- BBBOF1_0090_A.jpg
- BBBOF1_0090_B.jpg
- BBBOF1_0090_C.jpg
- BBDOTR_0070_A.jpg
- BBDOTR_0070_B.jpg
....

我想在每张图片名称前加一个 K 并将数字 1,2,3,4,5... 改为 a,b,c,d

最后我应该有:

- KBBBOF1_0090_1.jpg
- KBBBOF1_0090_2.jpg
- KBBBOF1_0090_3.jpg
- KBBDOTR_0070_1.jpg
- KBBDOTR_0070_2.jpg
....

请问我该怎么做?我尝试使用重命名功能添加 K,但对于字母被数字替换的部分,我不知道该怎么做。

<?PHP

$path = $_POST['path'];


   $dir    = $path;
   $allFiles = scandir($dir);

   foreach($allFiles as $file) {

        if (!in_array($file,array(".","..")))
      { 
  
      $file = $dir.$file;
      $filename = basename( $file );

   
        $newname = "K$filename";

        rename ("C:/wamp64/www/KMD/Photos/$filename","C:/wamp64/www/KMD/new/$newname");
        
    }


  }

    
echo "good !";
?>

解决方法

一种方法是简单地将 _A 替换为 _1

<?php
$files = [
    'BBBOF1_0090_A.jpg','BBBOF1_0090_B.jpg','BBBOF1_0090_C.jpg','BBDOTR_0070_A.jpg','BBDOTR_0070_B.jpg'
];

$replacers = [
    array_map(fn($v) => '_'.$v,range('A','Z')),array_map(fn($v) => '_'.$v,range(1,26))
];

foreach ($files as $file) {
    echo 'K'.str_replace($replacers[0],$replacers[1],$file).PHP_EOL;
}

结果

KBBBOF1_0090_1.jpg
KBBBOF1_0090_2.jpg
KBBBOF1_0090_3.jpg
KBBDOTR_0070_1.jpg
KBBDOTR_0070_2.jpg

在线查看:https://3v4l.org/BBArn

,

可能有一种更简单的方法来做到这一点,但这是一种方法:

$newname = "K$filename"; // Start from here
preg_match( '/_([A-Z])\.jpg/',$newname,$matches ); // Get last letter
$char = ord($matches[1])-ord('A')+1; // Turn letter into corresponding number (A->1,B->2,etc.)
$newname = preg_replace( '/_([A-Z])\.jpg/',"_".$char,$newname ); // Replace letter with number

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?