我正在使用一个脚本,我想将文件夹移动到另一个目录,并给文件夹新的名称。我想我需要引爆一根绳子?但我不能让它正常工作。例如,我想要文件夹的原始名称: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);
}