移动并重命名文件夹php


Move and rename folders php

我正在使用一个脚本,我想将文件夹移动到另一个目录,并给文件夹新的名称。我想我需要引爆一根绳子?但我不能让它正常工作。例如,我想要文件夹的原始名称:351437-367628,并有一个新的名称:从开始到连字符。

我正在通过glob和rename函数移动文件夹。

<?php
    if ($handle = opendir('folders')) {
        while (false !== ($fileName = readdir($handle))) {
            $newName = str_replace("-#","",$fileName);
            rename($fileName, $newName);
        }
        closedir($handle);
    }
?>

可以使用explode()函数

$fileName = '351437-367628';
$newNametemp = explode("-",$fileName);
if(is_array($newNametemp)){
    $newName = $newNametemp[0];
    print_r($newName); // will return 351437,i.e. new name from start to hyphen
    rename($fileName, $newName);
}

获取所有目录

$dir = new DirectoryIterator('path');
foreach ($dir as $fileInfo) {
    if ($fileInfo->isDir() && !$fileInfo->isDot()) {
        $fileName = $fileInfo->getFilename();
        $newNametemp = explode("-",$fileName);
        if(is_array($newNametemp)){
            $newName = $newNametemp[0];
            print_r($newName); 
            rename($fileName, $newName);
        }
    }
}

如果您使用的是较低版本的PHP,请尝试

if ($handle = opendir('path')) {
    while (false !== ($fileName = readdir($handle))) {
        if(is_dir($fileName) && ($fileName != '..' && $fileName != '.')){
            $newNametemp = explode("_",$fileName);
            if(is_array($newNametemp)){
                $newName = $newNametemp[0];
                print_r($newName); 
                echo "<br/>";
                rename($fileName, $newName);
            }
        }
    }
    closedir($handle);
}