用于将大文件文件夹排序到基于日期的子文件夹的PHP脚本

时间:2013-04-23 20:42:07

标签: php linux file

我有一个来自PBX系统的大量通话记录,我需要将它们分类到更易于管理的文件夹中。

作为一个Linux菜鸟,如何搜索指定的文件夹,并根据文件的日期,将其移动到文件夹层次结构。

示例我将2013/04/23作为文件夹结构。

然后我有日期为

的文件

20130403-blah283.mp3 20130403-blah284.mp3 20130403-blah285.mp3 20130403-blah286.mp3 20130403-blah287.mp3

等。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这可能会给你一个起点:

  1. 获取文件
  2. 遍历文件
  3. 创建新目录/ file_name
  4. 创建目录if!exists
  5. 复制文件
  6. 删除旧文件
  7. 型号:

    <?php
    $base_path = "/PATH_TO_FILES/";
    //$files = glob($base_path."*.mp3");
    $files = array('20130403-blah283.mp3','20130403-blah284.mp3','20130403-blah285.mp3','20130403-blah286.mp3','20130403-blah287.mp3'); // for testing
    
    foreach($files as $file){
        $pieces = explode("-",$file);
        $new_filename = $pieces[1];
        $timestamp = $pieces[0];
        $directory = substr($timestamp,0,4)."/".substr($timestamp,4,2)."/".substr($timestamp,6)."/";
        if(!is_dir($base_path.$directory)){
            mkdir($directory,0777);
        }
        copy($base_path.$file,$base_path.$directory.$new_filename);
        //unlink($base_path.$directory.$new_filename); // DELETES OLD FILE ONLY UNCOMMENT WHEN YOUR READY!
    }