كيف يتم تنفيد دالة 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

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

التعليقات

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

مجهول
  • حذف بواسطة المستخدم