मुझे पता है कि यह विषय सुपर पुराना है, लेकिन, यदि कोई व्यक्ति उत्तर की तलाश में है, तो मुझे, मैं अपना समाधान पोस्ट कर रहा हूं।
यह समाधान कार्य करता है यदि आप अपनी फ़ाइल की शुरुआत में कुछ अतिरिक्त डेटा का बुरा नहीं मानते हैं।
मूल रूप से, विचार यह है कि, यदि फ़ाइल मौजूद नहीं है, तो इसे बनाने के लिए और पहली पंक्ति में वर्तमान तिथि को जोड़ दें। इसके बाद, आप पहली पंक्ति के साथ पढ़ सकते हैं fgets(fopen($file, 'r')), इसे किसी DateTimeऑब्जेक्ट या किसी भी चीज़ में बदल सकते हैं (आप स्पष्ट रूप से इसे कच्चे उपयोग कर सकते हैं, जब तक कि आप इसे एक अजीब प्रारूप में नहीं सहेजते हैं) और वॉइला - आपके पास अपनी निर्माण तिथि है! उदाहरण के लिए हर 30 दिनों में मेरी लॉग फ़ाइल को ताज़ा करने के लिए मेरी स्क्रिप्ट इस तरह दिखाई देती है:
if (file_exists($logfile)) {
$now = new DateTime();
$date_created = fgets(fopen($logfile, 'r'));
if ($date_created == '') {
file_put_contents($logfile, date('Y-m-d H:i:s').PHP_EOL, FILE_APPEND | LOCK_EX);
}
$date_created = new DateTime($date_created);
$expiry = $date_created->modify('+ 30 days');
if ($now >= $expiry) {
unlink($logfile);
}
}