[英]PHP game update
假設我有一個PHP游戲,這是一個賺錢的游戲,每天市場上的物品價格變化。
我怎樣才能讓數據庫中的價格每天自動更新? 我會在服務器上安裝一個程序來檢測它何時運行24小時然后運行一個PHP文件進行更新? 或者os有另一種方式嗎?
編輯:事情是伙計們,我實際上並不擁有我從托管公司租用的服務器所以我真的沒有訪問命令行:s
謝謝,斯坦尼
假設您使用的是Unix系統,則應設置每日cronjob。 要執行此操作,請運行“crontab -e”並輸入以下內容:
9 21 * * * /path/to/your/script
這將在每天21:09運行。
如果您無法訪問命令行,則可以將1x1圖像添加到調用php腳本的網站,該腳本會檢查是否需要更新某些內容。
就像是
<img style="width: 1px; height: 1px; visibility: hidden" src="cron.php">
在cron.php中,檢查數據是否需要更新。
既然您可能無法訪問cron,我會做的是檢查每次有人加載頁面時已經過了多少時間。 如果已經過了24小時,則調用您的更新功能。 如果已經過了48小時,那就打兩次電話。 如果沒有人加載頁面,那么是否已經調用更新函數並不重要,因為沒有人在看;)
或者您可以在家中設置一台計算機,每24小時遠程調用您的update.php。 您可以使用cron作業和wget執行此操作,或者如果您使用的是Windows,則可以使用任務計划程序。
我認為第一種選擇將是最好的。 每次加載頁面時調用更新功能,僅在24小時標記過后才更新。 如果你正確地寫它,它是否在確切的24小時標記更新並不重要。
您想要設置“cron作業”,或者以您設置的特定間隔運行的PHP文件。
有關更多信息,請查看此文章 。
關於cron作業的最好的部分是你不僅限於存儲過程中可用的一小部分功能。 你可以使用你喜歡的任何邏輯! :)
使用webcron :) http://www.webcron.org/index.php?lang=en
或者這里有一個很好的清單: http : //www.onlinecronservices.com/
我認為您可以創建一個每次訪問頁面時調用的函數,並驗證是否發生了更新,檢查數據庫。
所以在一個快速的偽代碼中:
function verify_often(){
if (last_update_in_db() != today() ){
update_db();
run_periodic_function();
}
return 0;
}
此方法僅需要經典的PHP和MySQL組合。
你怎么能'無法訪問命令行'? 我想不出任何不允許ssh訪問的主機。 訪問cron是一個不同的故事,但他們也應該允許這樣做。 如果他們不這樣做 - 找一個新的主人!
忘記這一切。 沒有理由做那樣的事情。
您所要做的就是每次有人呼叫網頁時進行檢查。 您可以跟蹤日期以及當前日期何時不再與您的變量匹配,然后您將觸發獲取新數據的內容。 巴姆! 當然,這不是很可擴展,但對於小游戲來說這很好。
我無法弄清楚如何回答亞歷克斯的答案,但我想提一下他們說的話。 當他們說“檢查每次有人加載頁面時已經過了多少時間”我覺得你不需要在每次加載頁面時都檢查它。 更好的方法是檢查用戶何時登錄。如果在用戶仍然登錄時超過24小時,則對於所描述的方案無關緊要。 下次有人登錄時,物品的價格會發生變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.