首页  >  文章  >  后端开发  >  php怎么删除3天前的数据

php怎么删除3天前的数据

藏色散人
藏色散人原创
2021-09-17 09:27:352390浏览

php删除3天前数据的方法:1、通过“date('Ymd',strtotime('-3 days'));”获取三天前的日期;2、通过“unlink($file_name);”删除三天前的文件即可。

php怎么删除3天前的数据

本文操作环境:Windows7系统、PHP7.1版,Dell G3电脑

php怎么删除3天前的数据?

PHP每天数据写当天文件,第二天读取,和删除三天前的文件

关于这个脚本,我思路是文件名直接用当天的日期,之后读取文件和删除文件就很方便了。如:20190218.txt

关于时间的处理:获取当前时间可以使用date()函数,获取到的是当前的时间戳,如果想显示日期可以给里面加参数,参数规定时间显示的格式,如data("Ymd"),是本次我使用的日期格式,输出的数据就是"20190218"这样;date("Y-m-d")是"2019-02-18";如果还要显示具体的时间,date("Y-m-d H:i:s"),结果如"2019-02-18 10:51:26"。关于获取前几天或后几天的时间,可以使用strtotime()方法。这个方法的作用是将英文文本日期时间解析为 Unix 时间戳。使用方法如:date("Ymd",strtotime("-1 day");获取昨天的日期,若是获取三天前的,则把"-1 day"换成"-3 days"即可;当然,也可以把day换成mouth,week,hour,year等,前面是“-”表示前几天或几小时,“+”表示后几天或几小时的时间。由于它是按时间戳算,所以只能计算1970年之前的。自 January 1 1970 00:00:00 GMT 起的秒数。

$date = date("Ymd");
$file_name = '/tmp/'.$date.'.txt';

以上代码是获取当前时间并生成文件名的部分,文件存在/tmp目录下。

PHP写文件:写文件需要一条数据写一行,最开始使用的是file_put_contents(),用于把一个字符串写入文件中。这个方法的语法是:

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

参数的含义分别是:

为了避免出错,数据写入前都先使用json_encode编码为json字符串。使用file_put_contents方法写入数据,后面势必要加FILE_APPEND,但是数据会直接跟在后面,读取的时候读取一行数据会把整个文件作为一行数据都读出来,而不是取一条。解决的办法是每行数据后都加入一个换行符。后面发现了PHP更为方便的一个文件处理方法,就不再用这个方法。

$fp = fopen($file_name,'a'); //打开文件,生成文件句柄,如果文件不存在则新建。
fwrite($fp,json_encode($log)."\n"); //写入数据
fclose($fp); //关闭文件

PHP读取文件:使用的方法是fgets(),该方法一次读取一行数据。

$date = date('Ymd',strtotime('-1 day')); //获取前一天的日期
$file_name = '/tmp/'.$date.'.txt'; //前一天的文件名
if(file_exists($file_name)) {
    $fp = fopen($file_name, "r");
    while (!feof($fp)) {
        $log = fgets($fp);
        $log = json_decode($log, true);
        ...
        //使用读取的数据,记得判空,最后一行是个换行符
        ...
        }

    fclose($fp);
}

PHP删除文件:使用unlink方法,若成功,则返回 true,失败则返回 false。

$date = date('Ymd',strtotime('-3 days')); //获取三天前的日期
$file_name = '/tmp/'.$date.'.txt'; //三天前的文件名
if(file_exists($file_name)){
    unlink($file_name); //删除文件
}

推荐学习:《PHP视频教程

以上是php怎么删除3天前的数据的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn