php 按修改日期保存文件到日期文件夹的实例代码

发布时间:2021-01-22编辑:脚本学堂
本文介绍下,按修改日期保存文件到指定日期文件夹中的一例代码,又需要的朋友参考下。

PHP递归整理文件夹,按日期递归实现保存文件。

代码:

<?php
/**
* 递归整理文件 按日期
* edit by www.jb200.com
*/
//调用函数test("test");
echo "整理完成!";
//echo is_dir("test/Data");
function test($dire)
{
    //打开文件夹
    $dir = opendir($dire);
    while(($file = readdir($dir))!= false)
    {
        //如果是上级目录和根目录程序继续进行,不能递归调用函数,否则会出现无限递归
        if($file == '.'|| $file == "..")
        {
            continue;
        }
        //如果文件时目录就调用自身的函数继续执行
        if(is_dir($dire."/".$file))
        {
            test($dire."/".$file);
            //echo "Directory: ".$file."<br/>";
        }
        else
        {
            //当不是目录时
            //echo "filename: ".$file."<br/>";    
            $f = $dire."/".$file;
            //打开文件,以只读模式
            $handle = fopen($f,"r");
            $fstat = fstat($handle);
            //文件的修改日期
            $fdate = date("Y-m-d",$fstat["mtime"]);
            $flag = false;
            //echo $fdate."<br/>";
            //创建以日期命名的目录,如果存在就不在重复创建,如果不存在就创建
            $dir1 = opendir("date");
            while(($file1 = readdir($dir1))!=false)
            {
               //判断是否存在以该日期命名的目录
                if($file1 == $fdate )
                {
                    $flag = true;
                }    
            }
            if(!$flag)
            {
                mkdir("./date/".$fdate,0700);
            }    
            if (!copy($dire."/".$file,"./date/".$fdate."/".$file)) 
            {
                echo "failed to copy $file...n";
            }
            //echo "filename: ".$file."  最后修改时间:".date("Y-m-d",$fstat["mtime"])."<br/>";
            
        }
    }
    return;
}


/* 获得文件信息的例子
    $file = "2013-7-30.php";
    //打开文件,r表示以只读方式打开
    $handle = fopen($file,"r");
    //获取文件的统计信息
    $fstat = fstat($handle);
    echo "文件名:".basename($file)."<br>";
    //echo "文件大小:".round(filesize("$file")/1024,2)."kb<br>";
    echo "文件大小:".round($fstat["size"]/1024,2)."kb<br>";
    //echo "最后访问时间:".date("Y-m-d h:i:s",fileatime($file))."<br>";
    echo "最后访问时间:".date("Y-m-d",$fstat["atime"])."<br>";
    //echo "最后修改时间:".date("Y-m-d h:i:s",filemtime($file))."<br>";
    echo "最后修改时间:".date("Y-m-d",$fstat["mtime"]);
*/

/*创建目录例子
mkdir("./123", 0700);*/
/*将一个文件复制到另一个位置例子
$source = '2013-7-30.php';
$dest = 'date/2013.php';
if (!copy($source, $dest)) {
    echo "failed to copy $file...n";
}
*/
?>