簡體   English   中英

PHP計時機制

[英]PHP timing mechanism

例如,我想每天8:00發送電子郵件,接收者和內容都在我的數據庫中。 我知道PHP中的一種方式不斷刷新

ignore_user_abort();
set_time_limit(0);
$interval=60*30;
do{
    //do
    sleep($interval);
}while(true);

但是,這不是一個明智的方法。 PHP中有更好的計時機制嗎? 如果你能給我一個例子,我將非常感謝。 謝謝!

在這種情況下,它看起來不像PHP。 PHP代碼僅用於在用戶訪問您的網站時運行。 雖然PHP完全能夠發送電子郵件,但只有在用戶打開網頁時才會發送。

我認為你要找的是你服務器上的另一個程序,它會在指定的時間發送電子郵件。 有許多不同的選擇,每個選項都非常適合不同的目的。

對於Mac的Linux,我認為Cron將是一個很好的解決方案。 Cron是一個非常簡單的程序,可以相對容易地安排執行命令。

我對Windows並不熟悉,但@Mike W評論說任務計划程序應該適合您的需求

當然,現在您需要一個將發送電子郵件的程序。 再一次有很多很多選擇。 我相信快速谷歌搜索會帶你走很長的路。 您可能想嘗試查找能夠發送電子郵件Python庫 ,因為Python是一種非常簡單易學的腳本語言。

如果你有一個收件人數據庫,那么肯定有Python庫能夠訪問它。 我對您的設置了解不多,但幾乎任何編程語言都很容易訪問數據庫。

沒有提到的方法睡覺($ interval); 不好,你必須在Linux,Windows任務調度程序中使用像Cron這樣的JOb調度程序。

crontab -e

添加以下行

0 8 * * * root $HOME/scripts/send_email.sh >> $HOME/tmp/out 2>&1

現在你應該創建send_email.sh腳本。 像這樣的東西:

#!/bin/bash
recipients="user0@domain.com user1@domain.com user2@domain.com"
subject="...Subject..."
cat $HOME/email_message | mail -s $subject $recipients

$HOME/email_message是您要發送的消息(文件)。

不要忘記為腳本授予執行訪問權限:

chmod +x $HOME/scripts/send_email.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM