首頁  >  文章  >  後端開發  >  php怎麼刪除3天前的數據

php怎麼刪除3天前的數據

藏色散人
藏色散人原創
2021-09-17 09:27:352401瀏覽

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