• ベストアンサー

phpスクリプトのみで定期実行

PHPのプログラムのみで5分に1回くらいサーバーにアクセスしメールチェックしたい。 現状サーバーにアクセスしメールチェックするとこまで完成してるのですが、定期的にアクセスする方法で苦戦してます。 条件的には (1)PCは切りたい (2)cronは使用できません (3)cgi等も使用できません PHP無限ループ+タイマーで自動実行風にできるでしょうか? 詳しい方、ご回答よろしくおねがします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#123003
noname#123003
回答No.1

(1)PCは切りたい (2)cronは使用できません このどちらかが可能なら可能なんですが。。 専用サーバーとか自前のサーバーならPHPを好きなように実行できますが、 (というかそれならcronが使用できますよね。) それ以外の場合はなんらかのアクセスがなきゃ実行されません。 >PHP無限ループ+タイマーで自動実行風にできるでしょうか? 無限ループでバッファ関数を使っても5分はきついでしょう。 それでもアクセスしなければ実行されないうえに、 大体のサーバーが30秒ぐらいでPHPの処理制限がありますから、それ以上実行できません。 一般的にこういった処理は普通cronを使います。

seventozero
質問者

お礼

やっぱサーバーにはそういった制限がかかっているのですね(^_^;) おっしゃるとおりcronが使えればいいのですが・・

その他の回答 (2)

回答No.3

コマンドラインでphpを使ったらどうでしょう。 例えば、loop.phpファイルを作り内容は以下のような感じにします。 #!/usr/bin/php -q <?php while(){ やりたい処理; sleep(3600); } ?> それをLinuxサーバーのコマンドラインで php loop.php で実行。 始めてしまったプロセスを止めるにはLinuxのkillコマンドで。 自分ではやったことないので、やるなら自己責任で。 参考URLもよく見てね。

参考URL:
http://www.ibm.com/developerworks/jp/opensource/library/os-php-command/
seventozero
質問者

お礼

OSがFreeBSDでなのでできるかどうかわからないのですが、調べてみます。 ありがとうございました。

回答No.2

質問の意図がイマイチ不明瞭です。 PHPプログラムは何で実行する予定ですか。 ローカルPCで、デーモン的に使いたいということなのでしょうか。 レンタルサーバのような自分の自由に構成がきかないものの上で行いたいということでしょうか。

seventozero
質問者

お礼

回答遅くなってしまい、すいません。 無限ループなので、一回phpスクリプトにアクセスしたら定期的にずっと実行するようなことを考えていたのですが。 難しいみたいですね・・・