欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP 字符串写入文本 读取目录下文本 获取文本创建时长

程序员文章站 2022-05-24 12:30:42
...

1.字符串写入txt文本

$str = 'fe10010532690451524e353739ffd405080002000001fe00';
$name = date('Ymd',time());//以年月日为文本name

//创建、打开文本
$myfile = fopen("$name.txt", "a") or die("Unable to open file!");  //w  重写  a追加
//"\n" 换行符
$txt = $str."\n";
//文本写入txt文本
fwrite($myfile, $txt);

2.获取目录下文件,并对创建时间大于30的文本作删除操作

//文件路径
$dir = "../../data";

//处理文本
/*
 * is_dir():是否为文件夹
 * is_file():是否为文办
 * opendir():打开文件夹
 * readdir():获取目录下文件名或子目录名称
 *
 */
if (is_dir($dir)){
    if ($dh = opendir($dir)){
        while (($file = readdir($dh)) !== false){
            if($file != '.' && $file != '..'){//过滤名称为.和..的文件,不是太理解为什么会有这个文件
                if(is_dir($file)){
                    //过滤子目录
                }elseif(is_file($file)){
                    //对文本进行处理
                    $ctime = filectime($name);//文本创建时间
                    $ntime = time();//当前时间
                    //文本创建日期同当前日期进行比较
                    if(count_days($ctime,$ntime) > 30){
                        unlink($name);//删除文本
                    }
                }
            }
        }
        closedir($dh);
    }
}

//计算日期差
/*
 * fileatime("fname.txt");上次访问时间
 * filectime("fname.txt");文本创建时间
 * filemtime("fname.txt");上次修改时间
 */
function count_days($ctime,$ntime){
    //getdate() 获取年、月、日等具体值
    $a_dt = getdate($ctime);
    $b_dt = getdate($ntime);
    //mktime() 获取UNIX时间戳
    $a_new = mktime(12, 0, 0, $a_dt['mon'], $a_dt['mday'], $a_dt['year']);
    $b_new = mktime(12, 0, 0, $b_dt['mon'], $b_dt['mday'], $b_dt['year']);
    return round(abs($a_new-$b_new)/86400);
}