كيف يتم تنفيد دالة php بعد وقت محدد

السلام عليكم

تحية طيبة للجميع.

لدي صفحة 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

وشكرا ..

@Mustafa_Suleiman

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

تتوفر دالة 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 ثانية هي عدد الثواني في الساعة الواحدة.

@Mustafa_Suleiman

شكرا اخي مصطفى وبارك الله فيك على الاجابة

جربت الكود اشتغل صح تمام.

عندي استفسار بخصوص هذا الكود 

$hours >= 3 

هل اذا اردت تغير الى 6 ساعات ابدل الرقم 3 ب 6