特定の日時にコードを実行するようにPHPに指示することは可能ですか?たとえば、Blogger.comでは、誰かがブログ投稿を将来公開するように設定できます(たとえば、12/12/14 6:00 AM)。
PHPは同様のことを行うことができますか?
(申し訳ありませんが、これらのようなイベントの正しい用語が、それらを検索することさえできるようになることさえわかりません!:()
これは、cronジョブ(またはWindowsのスケジュールされたタスク)を使用して実行できます。それらは通常、繰り返し発生するジョブに使用されますが。
データベースを使用している場合、ほとんどのプラットフォームにはスケジューラが付属しています。
データベースでアクションをスケジュールし、サーバーでcronジョブを使用するか、cronジョブサービスを使用してアクションを実行できます。
たとえば、将来ブログを公開する場合は、将来の公開日を保存し、ある種の自動公開ビットを設定します。
次に、PHPスクリプトがcronjobによって実行されるたびに、このスクリプトは、公開する必要のあるすべてのブログについてデータベースをチェックします。
PHPコードを定期的に呼び出すには、プロセスを永久に実行する必要があるため、PHPにこれを自分で行うように指示することはできません。ありがたいことに、これを行うことがいくつかあります。
1)cronジョブからPHPスクリプトを呼び出します。これにより、必要な作業が実行されます。crontabにアクセスできない場合は、ユーザーが代わりにサイトにpingを実行したときに定期的にこれを呼び出すことができますが、もちろん信頼性は低くなります。
2)を使用しat
ます。これは基本的にLinuxシステムのcronと同じように機能しますが、正確な時間に1回スケジュールされます。
「特定の時間にコードをトリガーする」場合、cronは機能します。しかし、特定の時間に記事を公開するような単純なものの場合、それは必要ありません。記事と一緒に公開日を保存するだけです。記事のリストを表示するときは、クエリを次のように調整できます。WHERE PUBLISH_DATE <= NOW()
記事ページで、記事を表示する前に、記事の公開日が過ぎているかどうかを確認してください。
Unixライクなシステムには、Cronがあります。PHPからcronを管理できます。
Windowsには、スケジュールされたタスクがあります。PHPを使用してスケジュールされたタスクを管理することもできます。
ただし、これには注意してください。テストするのは少し難しく、サーバーが機能しなくなるスケジュールになる可能性があります。