移动并重命名文件夹php

时间:2014-07-03 13:07:45

标签: php rename explode

我正在使用脚本,我想将文件夹移动到另一个目录,并为文件夹指定新名称。 我想我需要爆炸一个字符串?但我不能让它正常工作。 示例我想要具有原始名称的文件夹:351437-367628并且具有新名称:从开始到连字符。

我通过glob和ren​​ame函数移动文件夹。

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

1 个答案:

答案 0 :(得分:2)

您可以将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);
}