php删除3天前数据的方法:1、通过“date('ymd',strtotime('-3 days'));”获取三天前的日期;2、通过“unlink($file_name);”删除三天前的文件即可。
本文操作环境: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天前的数据的详细内容。