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);
}
上一篇: 安卓判断文件的最后修改时间
下一篇: Spring使用AspectJ开发AOP