在php中移动和重命名文件夹

在php中移动和重命名文件夹,php,rename,explode,Php,Rename,Explode,我正在使用一个脚本,希望将文件夹移动到另一个目录,并为文件夹指定新名称。 我想我需要解开一根绳子?但我不能让它正常工作。 示例我希望文件夹的原始名称为:351437-367628,新名称为:从开始到连字符 我正在通过glob和rename函数移动文件夹 <?php if ($handle = opendir('folders')) { while (false !== ($fileName = readdir($handle))) { $ne

我正在使用一个脚本,希望将文件夹移动到另一个目录,并为文件夹指定新名称。 我想我需要解开一根绳子?但我不能让它正常工作。 示例我希望文件夹的原始名称为: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);
}
if($handle=opendir('path')){
while(false!=($fileName=readdir($handle))){
如果(is_dir($fileName)&&($fileName!='..'&&&$fileName!='.')){
$newNametemp=explode(“\u”,$fileName);
if(是_数组($newNametemp)){
$newName=$newNametemp[0];
打印(新名称);
回声“
”; 重命名($fileName,$newName); } } } closedir($handle); }
您可以使用和。请提供一个示例,显示您希望在文件夹中输入和输出的字符串的前后位置。输入文件夹正在删除包含图片的文件夹。姓名可能是321321-6546541-54654、654654-45-45646、654651-6544。我想保留第一个连字符的名称,所以文件夹名为321321、654654和654651。我怎么能只保留第一个连字符的名称?谢谢你!这正是我所需要的。我如何让$filename成为所有文件夹?我无法让最后一个在@deepika工作。正在尝试使用:$fileName='/folder/output'$newNametemp=分解(“-”,$fileName);如果(is_array($newNametemp)){$newName=$newNametemp[0];print_r($newName);//将返回351437,即新名称从开始到连字符重命名($fileName,$newName);}谢谢!!非常感谢!!迪皮卡