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