لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
تغيير صورة معينة كل 24 ساعة
السلام عليكم
سيكون هناك مجموعة من الصور في فولدر بالسيرفر
كيف أخلي صورة معينة على الموقع تتغير كل 24 ساعة
علماً أن السيرفر يعمل بالتوقيت الأمريكي يعني الفرق 5 ساعات عن التوقيت العالمي
و شكراً
تاريخ البداية: 13 / يناير / 2012 الساعة 15:59 اخر نشاط: 14 / يناير / 2012 الساعة 9:16 صور محتوى

لو جعلت اسماء هذه الصور فى جدول فى قاعدة البيانات سيكون الامر اسهل من وجهة نظرى
13 / يناير / 2012 الساعة 16:3

أرى أنه من الافضل تبقى في فولدر حتى إذا اردنا اضافة صور جديدة يكون الأمر اسهل
13 / يناير / 2012 الساعة 16:7

حتى تستطيع منعه من اختيار صورة اختارها من قبل ، والالتزام بالترتيب .. ولكن اعتقد ايضا انه يمكن فعلها بالملفات .
13 / يناير / 2012 الساعة 16:10

نعم نقدر نعمل ان يكون التتابع يعني لو اليوم اختار الصورة 1.jpg الغذ يختار 2.jpg لدي الفكرة لكن عندما جئت للتطبيق تلخبط الأمر علي :S
13 / يناير / 2012 الساعة 16:14

3 إجابات
يوجد في مجلد الصور 4 صور
1.jpg
2.jpg
3.jpg
4.jpg

و رغم أنني أغير الوقت في السيرفر المحلي لا تتغير الصور
فتظهر الصورة رقم 1 دوماً
<?php
  
  function getImageOfTheDay() {
    $myDir = "imgin/";
 
    // الحصول على القيمة الفريدة لليوم والشهر.
    // 15th Jan 2008 -> 10152008. 3 Feb -> 10342008, 31 Dec -> 13662008
    $day = sprintf("1%03d%d", date('z'), date('Y'));
 
    // الحصول على جميع الصور من المجلد المحدد بالامتداد المحدد.
    $jpgs = glob($myDir . "*.jpg");
    mt_srand($day);
    return $jpgs[$day % count($jpgs)];
}

echo getImageOfTheDay();
?>

بواسطة: hasan
منذ: 13 / يناير / 2012 الساعة 17:15

هل تغير تاريخ اليوم؟ كيف تفعل هذا؟
13 / يناير / 2012 الساعة 19:45

سهلة, الوقت و التاريخ في السيرفر المحلي هو الوقت و التاريخ بالجهاز, أعدل الوقت و التاريخ الخاص بالحاسوب + الحل الوحيد الذي اراه هو تسمية الصور بإسم الرمز الفريد لليوم و الشهر و هكذا سيكون الأمر فعالا
14 / يناير / 2012 الساعة 9:16

يمكنك تغييرها بطريقة عشوائية معتمدا على التاريخ.
انظر لهذه الدالة وحاول ان تفهمها جيدا
function getImageOfTheDay() {
    $myDir = "path/to/images/";

    // الحصول على القيمة الفريدة لليوم والشهر.
    // 15th Jan 2008 -> 10152008. 3 Feb -> 10342008, 31 Dec -> 13662008
    $day = sprintf("1%03d%d", date('z'), date('Y'));

    // الحصول على جميع الصور من المجلد المحدد بالامتداد المحدد.
    $jpgs = glob($myDir . "*.jpg");
    mt_srand($day);
    return $jpgs[mt_rand(0, count($jpgs) - 1)];
}
وفى النهاية يوجد شىء اخر ، ان كنت تريد ترتبيهم ابجديا او شىء كهذا يجب عليك استعمال هذا
function getImageOfTheDay() {
    $myDir = "path/to/images/";
    $day = sprintf("1%03d%d", date('z'), date('Y'));
    $jpgs = glob($myDir . "*.jpg");
    return $jpgs[$day % count($jpgs)];
}

بواسطة: molhm
منذ: 13 / يناير / 2012 الساعة 16:43

لكن كيف اجعلها تتغير كل 24 ساعة بالتوقيت العالمي, و السيرفر الخاص بي يعمل بالتوقيت الامريكي , هل علي اضافة 5 ساعات للوقت
13 / يناير / 2012 الساعة 16:56

كل يوم تعنى كل 24 ساعة فالكود مصنوع لذلك بالفعل. وهو يعتمد على توقيت السيرفر
13 / يناير / 2012 الساعة 16:57

جرب شىء كهذا date_default_timezone_set('Africa/Cairo');
13 / يناير / 2012 الساعة 17:1

لا تتغير الصور تظهر لي الصورة 1 دوماً أنظر فوق كيف استعملته
13 / يناير / 2012 الساعة 17:16

رايت الدالة سابقاً و أرى أنها غير فعالة الحل الوحيد الذي اراه هو تسمية الصور بإسم الرمز الفريد لليوم و الشهر و هكذا سيكون الأمر فعالا
13 / يناير / 2012 الساعة 17:40

يمكنك ترتيبهم على اساس ايام الاسبوع مثل
switch(date('w'))
 {
  case '1':
   //Monday
   break;
  case '2':
   //Tuesday:
   break;
...
}

بواسطة: علاء
منذ: 13 / يناير / 2012 الساعة 16:18

أنشر اجابتك

xهل تريد الاجابة عن هذا السؤال؟ من فضلك سجل دخول او اشترك لتتمكن من الاجابة