PHPのCronについて質問です。


現在PHPのcronを使って定期的に携帯電話にメールを送りたいと考えています。

サーバーはサクラサーバーを使用してるのですが、この会社はコントロールパネル画面でcronの設定画面があり、スタンダードプランだと5つしか設定できないので、自分で出来ることなら設定していくつかのcronを動かしてみたいと考えています。

実際に行うにあたって少し分からない点があり、

★個人的にcronを使えるようにするには何かサーバー上で設定をしないといけないのではないか?

ということです。(さくらはコントロールパネルで設定できるので難しいのではないかと勝手に先入観を持っています。。)

そして それが実行できたら

★PHPスクリプトに
何々をしないといけない 見たいなお知らせ文章のメールを 指定した曜日、時間帯にmb_send_mail関数を使ってメールを送りたいと考えています。

コメント欄にて、このようなスクリプト構成になるのではないか?というのを考えてみたのですが見ていただけないでしょうか?

cronというのがよく分かっていないところがいくつかあり、お手数をおかけしますが分かる方おりましたらどうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/10/18 03:33:39
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:araishi No.1

回答回数7ベストアンサー獲得回数2

ポイント100pt

cronというのは指定された時間に指定したスクリプトを実行できる機能と考えると良いと思いますよ。

たとえば毎時間にhour.phpというスクリプトを実行するように設定してhour.phpの中身は以下のようにすると

水曜日の10時にメールが送信されますよ!

<?PHP

// 水曜日の10時

if(date('D') == 水曜日 && date('H') == 10時){

mb_send_mail(test@docomo.ne.jp,'ご飯を食べる。',’ご飯’);

}

?>

id:aiomock

ご回答ありがとうございます。

if文で出来るのですね。。

cronの設定ですが

毎時間にhour.phpというスクリプトを実行するように設定

とは個人で設定する場合、どのようになるのでしょうか??

サーバー上でcronを実行させる命令が必要な気がするのですが。

2009/10/15 14:45:52

その他の回答2件)

id:araishi No.1

回答回数7ベストアンサー獲得回数2ここでベストアンサー

ポイント100pt

cronというのは指定された時間に指定したスクリプトを実行できる機能と考えると良いと思いますよ。

たとえば毎時間にhour.phpというスクリプトを実行するように設定してhour.phpの中身は以下のようにすると

水曜日の10時にメールが送信されますよ!

<?PHP

// 水曜日の10時

if(date('D') == 水曜日 && date('H') == 10時){

mb_send_mail(test@docomo.ne.jp,'ご飯を食べる。',’ご飯’);

}

?>

id:aiomock

ご回答ありがとうございます。

if文で出来るのですね。。

cronの設定ですが

毎時間にhour.phpというスクリプトを実行するように設定

とは個人で設定する場合、どのようになるのでしょうか??

サーバー上でcronを実行させる命令が必要な気がするのですが。

2009/10/15 14:45:52
id:hige3_1966 No.2

回答回数2ベストアンサー獲得回数0

ポイント27pt

やり方は色々あるかとは思いますが、まずは cron について、もう少し。

#1 の方も書かれているように、そもそも cron というのは簡単に言えば

「指定した曜日、時間帯、時間(または間隔)に、指定した処理(スクリプト)を実行する」

ための仕掛けです。

従って、お尋ねになっている

「指定した指定した曜日、時間帯にmb_send_mail関数を使ってメールを送りたい」

という要件の場合、

 ・メールを送信するスクリプトを用意する

 ・cron でスクリプトを実行する曜日、時間帯を指定する

ということで実現できます。

ですので、#1 にあるような if 文での判断も、本来不要です。

ただ、送るメールの内容がその都度変化するなど、複雑になるのであれば当然スクリプトの

中身は複雑になりますが、そのスクリプトを実行する曜日・時間帯・間隔が決まっているのであれば

cron の設定は一つですみます。


さくらでの cron 設定については、以下のページに親切な解説があったので参考にされると良いでしょう。

http://senrioka-info.net/0_google_sitemap/cron.htm

あとは少し細かい話になりますが、もともとの cron の設定(さくらのコントロールパネルの裏側)

については、こんなところを読んでみるのも良いかもしれません。

http://www.express.nec.co.jp/linux/distributions/knowledge/syste...

id:aiomock

ご回答ありがとうございます。

2009/10/15 16:14:01
id:snow_leopard No.3

回答回数294ベストアンサー獲得回数22

ポイント26pt

サーバー全体のcronは管理者が/var/cronとか/etc/cronに書き込みます。

個人ユーザーでも使える場合は、cronコマンドを使います。

http://yang.amp.i.kyoto-u.ac.jp/~yyama/FreeBSD-3.4/misc/cron-j.h...

id:aiomock

ご回答ありがとうございます。

2009/10/17 17:40:53
  • id:aiomock
    スクリプト構成ですが以下のようになるのではないかと考えています。(間違っていると思うのでご指摘をいただければと思います。。)

    サーバー上で個人的にCronが使えるようになったと想定して・・

    <?

    //Cronの呼び込みの設定

    なんか定義するのが最初あるのではないか?と考えています。


    //以下 送りたいメールの設定

    ●毎週水曜日10時にメールを送りたい。

    cron(水曜日:10時)←見たいな関数があるのでは?と考えています。
    {

    mb_send_mail(test@docomo.ne.jp,'ご飯を食べる。',’ご飯’);

    メールを送信します。

    }←If文みたいに{}で囲むのでは?と思っています。。


    ●毎週金曜日19時にメール

    cron(金曜日:19時)←見たいな関数があるのでは?と考えています。
    {

    mb_send_mail(test@docomo.ne.jp,'夕ご飯を食べる。',’ご飯’);


    }

    以下 どんどんメールを設定したいと考えています。

    ?>
  • id:rouge_2008
    シェルからログインして登録すると、5個以上登録することも可能なようです。

    http://bsks.sakura.ne.jp/blog/2009/02/03/%E3%81%95%E3%81%8F%E3%82%89%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AEcron%E8%A8%AD%E5%AE%9A/


    ちなみにPHPからcronを実行するということは出来ないはずです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません