السلام عليكم
تحية طيبة للجميع.
لدي صفحة page1.php فيها هذا الكود اسفله
$web= file_get_contents($url);
$myfile = fopen('file.txt', 'w') or die('Unable to open file!');
$txt = $web;
fwrite($myfile, $txt);
fclose($myfile);
كل مرة تفتح الصفحة page1.php تنفذ دالة fopen تقوم بإنشاء ملف file.txt
انا اريد تنفيد الدالة fopen بعد كل 3 ساعات من انشاء ملف file.txt
مهما تم فتح صفحة page1.php كم مرة
يعني يتم إنشاء الملف كل مرة بعد 3 ساعات من المرة الأولى.
بدون قاعدة بيانات و بدون cronjob cpanel
وشكرا ..
التعليقات
تتوفر دالة filemtime لتحديد أخر مرة تم فيها تحديث الملف file.txt، بالتالي لو الفترة الزمنية بين أخر تحديث للملف وأقرب وقت حالي أكبر من 3 ساعات، نقوم بإنشاء الملف من جديد.
$url = 'رابط الموقع';
$web = file_get_contents($url);
$myfile = 'file.txt';
$lastUpdate = filemtime($myfile);
$currentTime = time();
// تحديد الفترة الزمنية بين آخر تحديث للملف وأقرب وقت حالي
$diffTime = $currentTime - $lastUpdate;
// تحديد عدد الساعات بين آخر تحديث للملف وأقرب وقت حالي
$hours = floor($diffTime / 3600);
if ($hours >= 3 || !file_exists($myfile)) {
$myfileHandle = fopen($myfile, 'w') or die('Unable to open file!');
$txt = $web;
fwrite($myfileHandle, $txt);
fclose($myfileHandle);
}
لاحظ 3600 ثانية هي عدد الثواني في الساعة الواحدة.
شكرا اخي مصطفى وبارك الله فيك على الاجابة
جربت الكود اشتغل صح تمام.
عندي استفسار بخصوص هذا الكود
$hours >= 3
هل اذا اردت تغير الى 6 ساعات ابدل الرقم 3 ب 6