假设我的文件目录中包含6个文件的文件:
File|-> Pic_Pic1.jpg
|-> Pic_Pic2.jpg
|-> Pic_Pic3.jpg
|-> Img_Img1.jpg
|-> Img_Img2.jpg
|-> Img_Img3.jpg
Here FolderName_FileName.jpg
现在我想要从文件名创建文件夹的PHP脚本并将其移动到正确的位置..
这就是我想要的
File|-> Pic|-> Pic_Pic1.jpg
| |-> Pic_Pic2.jpg
| |-> Pic_Pic3.jpg
|-> Img|-> Img_Img1.jpg
|-> Img_Img2.jpg
|-> Img_Img3.jpg
<?php
define('START_DIR', 'rec');
define('DEST_DIR', 'rename');
define('SEPARATOR', '\\');
function firstStage() {
$d = dir(START_DIR);
while (false !== ($entry = $d->read())) {
if($entry != '.' && $entry != '..')
secondStage($entry);
}
$d->close();
}
function secondStage($prefix) {
$d = dir(START_DIR . SEPARATOR . $prefix);
while (false !== ($entry = $d->read())) {
if($entry != '.' && $entry != '..')
rename(START_DIR . SEPARATOR . $prefix . SEPARATOR . $entry, DEST_DIR . SEPARATOR . $prefix . '_' . $entry);
}
$d->close();
}
firstStage();
?>
答案 0 :(得分:0)
你可能正在寻找类似的东西。
<?php
define('START_DIR', 'rec');
foreach (glob(START_DIR . DIRECTORY_SEPARATOR . '/*.jpg') as $file) {
list(,$filename) = explode('/', $file);
list($destination, ) = explode('_', $filename);
$newdir = START_DIR . DIRECTORY_SEPARATOR .$destination;
if(!@mkdir($newdir) && !is_dir($newdir) ) {
throw new Exception('Cannot create new directory', 0755);
}
rename($file, $newdir . DIRECTORY_SEPARATOR . $filename);
}
?>