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天前的数据的详细内容。更多信息请关注PHP中文网其他相关文章!