תפעול תור בשרת
-
יש לי שרת שמקבל נתונים על תור כל הזמן, אני צריך שהוא ישמור את הנתונים כל הזמן וישמור על הסדר של התור, לא יכניס פתאום את השלישי ראשון ואת הראשון אחרון, אלא שכל עוד הראשון בתור הוא ישאר ראשון, וברגע שהוא יצא מהתור, כולם יתקדמו לפי הסדר.
איך עושים את זה?השרת שולח בקשה ומקבל בתגובה מערך של שמות ואיפה הם נמצאים (צריך גם שרק מי שבמקום מסוים יהיה בתור).
-
gpt הציע את זה
<?php define('QUEUE_FILE', 'queue.json'); // קובץ שישמור את התור // פונקציה לקרוא את התור מהקובץ function loadQueue() { if (!file_exists(QUEUE_FILE)) { file_put_contents(QUEUE_FILE, json_encode([])); } return json_decode(file_get_contents(QUEUE_FILE), true); } // פונקציה לשמור את התור לקובץ function saveQueue($queue) { file_put_contents(QUEUE_FILE, json_encode($queue, JSON_PRETTY_PRINT)); } // פונקציה לעדכן את התור function updateQueue($newData, $validLocation) { $queue = loadQueue(); // קריאת התור הקיים // סינון האנשים שרק מהמיקום הרצוי $filteredData = array_filter($newData, function ($person) use ($validLocation) { return $person['location'] === $validLocation; }); // יצירת רשימה של שמות בלבד $newNames = array_column($filteredData, 'name'); // שמירה על סדר: מי שכבר בתור - נשאר $updatedQueue = array_values(array_intersect($queue, $newNames)); // הוספת חדשים לסוף foreach ($newNames as $name) { if (!in_array($name, $updatedQueue)) { $updatedQueue[] = $name; } } saveQueue($updatedQueue); // שמירת התור המעודכן return $updatedQueue; } // קבלת הנתונים מהשרת (הדמיה של POST) $dataFromServer = json_decode(file_get_contents('php://input'), true); // רק מי שנמצא במקום 6 ייכנס לתור $validLocation = "6 "; // עם רווח אחרי ה-6 כפי שביקשת // עדכון התור והחזרת התוצאה $resultQueue = updateQueue($dataFromServer, $validLocation); echo json_encode($resultQueue); ?>אבל אני לא סומך עליו, עברתי איתו הרבה תלאות, גם הצלחות אבל גם תלאות...
-
יש למישהו חוות דעת על הקוד הנ"ל?
-
אין עליכם
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות