【问题标题】:How to create a folder from file name and moved it in PHP?如何从文件名创建文件夹并在 PHP 中移动它?
【发布时间】:2017-09-01 15:02:24
【问题描述】:

假设我的文件目录中包含 6 个文件:

File|-> Pic_Pic1.jpg
    |-> Pic_Pic2.jpg
    |-> Pic_Pic3.jpg
    |-> Img_Img1.jpg
    |-> Img_Img2.jpg
    |-> Img_Img3.jpg

这里是 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();
?>

【问题讨论】:

标签: php file directory


【解决方案1】:

您可能正在寻找类似的东西。

<?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);
}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多