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中文網其他相關文章!