続・指定した時間にPHPプログラムを実施
お世話になります。
http://oshiete1.goo.ne.jp/qa3423046.html
にて質問させて頂いたのですが、追加で以下の質問をさせて頂きたく思います。ぼやけた質問ですので、こういう感じでどうでしょうというアドバイスでも頂ければ幸いでございます。
で、前回アドバイスいただきました事項を参考にさせて頂いて、
DBにて各情報を管理して、メール送信のプログラムはPHPをCRONにて動作させようと考えました。
・メール関連DBテーブル
-> IDを一意の値として管理する。
postgres=# select * from mail_gen;
id | seireki | tuki | nitiji | jikan | word1 |
----+---------+------+--------+-------+-----------------+
31 | 2008 | 01 | 01 | 00 | メール内容 |
id | integer | not null default nextval
また、HTMLからメール関数の変数を引き継いだ際に、DBでデータ挿入以外にも、日時データをテキストファイルで追加するようにして、
<?
require('../include/init.inc');
$seireki = $_POST{'seireki'};
$tuki = $_POST{'tuki'};
$nitiji = $_POST{'nitiji'};
$jikan = $_POST{'jikan'};
$word1 = $_POST{'word1'};
$sql = "insert into mail_generator
(seireki,tuki,nitiji,jikan,word1,word2,word3)
values
('$seireki','$tuki','$nitiji','$jikan','$word1');";
pg_query("$sql");
$fhn = fopen("./at.txt","a");
fwrite($fhn,$seireki);
fwrite($fhn,"-");
fwrite($fhn,$tuki);
fwrite($fhn,"-");
fwrite($fhn,$nitiji);
fwrite($fhn," ");
fwrite($fhn,$jikan);
fwrite($fhn,":00");
fwrite($fhn,"\n");
fclose($fhn);
?>
ご教示頂いたことを参考にして、at.txtで時間が一致した時に、
指定したメール送信関数を起動させようと思ったのですが、
$now = date("Y-m-d H:i");
$atfile = "at.txt";
$atarr = file($atfile);
if(count($atarr)>0){
foreach($atarr as $at){
if($at == $now) mySendMail();
}
}
・at.time
# more attime.txt
2008-01-01 00:00
2008-01-01 00:00
メール送信されるトリガーで、日時の条件だけでは条件として一意ではないため、IDと一致する条件も加えたいと考えております。
なにかうまい?方法はないでしょうか。
お礼
ご回答ありがとうございました。 試してみたいと思います。