我正在使用脚本,我想将文件夹移动到另一个目录,并为文件夹指定新名称。 我想我需要爆炸一个字符串?但我不能让它正常工作。 示例我想要具有原始名称的文件夹:351437-367628并且具有新名称:从开始到连字符。
我通过glob和rename函数移动文件夹。
<?php
if ($handle = opendir('folders')) {
while (false !== ($fileName = readdir($handle))) {
$newName = str_replace("-#","",$fileName);
rename($fileName, $newName);
}
closedir($handle);
}
?>
答案 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);
}