スケジュールされた実行タスクは、ドキュメントの定期的な公開、ジャンク情報の定期的なクリーンアップなど、Web サイトにとって比較的重要なタスクです。今日の Web サイトのほとんどは PHP 動的言語を使用して開発されており、PHP の実装に関する決定はありません。 Java や .Net などの AppServer の概念と http プロトコルはステートレス プロトコルです。PHP はユーザーによってのみトリガーされて呼び出すことができます。呼び出された後は自動的にメモリから抜け出し、常駐メモリはありません。
推奨: 「php ビデオ チュートリアル 」
PHP を使用してスケジュールされたタスクを実装する必要がある場合は、次の解決策があります:
1. シンプルで直接的で無謀なタイプ
<?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 ini_set('memory_limit','512M'); // 设置内存限制 $interval=60*30;// 每隔半小时运行 do{ //ToDo sleep($interval);// 等待5分钟 } while(true);
欠点: 一度起動すると PHP ホストを終了しない限り制御できないため、ハッカーでない限りこの方法は使用しないでください。
2. シンプルな制御可能なタイプ
config.php<?php return 1; ?>cron.php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*30;// 每隔半小时运行 do{ $run = include 'config.php'; if(!$run) die('process abort'); //ToDo sleep($interval);// 等待5分钟 } while(true);config の return 0 を変更してプログラムを停止します。 php. 実行可能な方法は、config.php ファイルと特別なフォームを操作し、設定用の HTML ページを通じていくつかの変数を設定することです。欠点: システム リソースを消費し、長時間実行すると、時には、予期せぬ危険が隠れていることもあります。たとえば、メモリ管理の問題など。
3. シンプルに改良された
<?php $time=15; $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; /* function */ sleep($time); file_get_contents($url); ?>phpスクリプトスリープは、一定時間経過後に自身にアクセスすることで実行を継続します。まるで駅伝のように..これにより、各 PHP スクリプトの実行時間が長すぎないことが保証されます。time_out によって制限されません。PHP ファイルの各サイクルは独立して実行されるため、このメソッドは time_out 制限を回避しますただし、プロセスを終了できるように、上記のように制御コード cofig.php を追加するのが最善です。
4. サーバーのスケジュールされたタスク
UnixPlatform
Unix システムを使用している場合は、PHP スクリプトの先頭に特別なコード行を追加して実行できるようにする必要があります。これにより、システムが内容を認識できるようになります。種類 プログラムはスクリプトを実行しようとしています。 Unix システム用に追加されたコードの最初の行は、Windows でのスクリプトの実行には影響しないため、この方法を使用してクロスプラットフォーム スクリプトを作成することもできます。1. PHP を使用して Crontab でスクリプトを実行する
Crontab で通常のシェル スクリプトを呼び出すのと同じように (Crontab の特定の使用法)、PHP プログラムを使用して PHP を呼び出しますこのスクリプトは、次のように myscript.php を 1 時間ごとに実行します。# crontab -e 00 * * * * /usr/local/bin/php /home/john/myscript.php/usr/local/bin/php は、PHP プログラムのパスです。
2. URL を使用して Crontab でスクリプトを実行する
PHP スクリプトを URL によってトリガーできる場合は、lynx、curl、または wget を使用して Crontab を設定できます。 次の例では、Lynx テキスト ブラウザを使用して URL にアクセスし、PHP スクリプトを 1 時間ごとに実行します。 Lynx テキスト ブラウザは、デフォルトで会話モードを使用して URL を開きます。ただし、以下に示すように、lynx コマンド ラインで -dump オプションを使用して、URL 出力を標準出力に変換します。00 * * * * lynx -dump http://www.sf.net/myscript.php次の例では、CURL を使用して URL にアクセスし、5 分ごとに PHP スクリプトを実行します。 Curl は、デフォルトで出力を標準出力に表示します。 「curl -o」オプションを使用すると、スクリプトの出力を一時ファイル temp.txt にダンプすることもできます。
*/5 * * * * /usr/bin/curl -o temp.txt http://www.sf.net/myscript.php次の例では、WGET を使用して URL にアクセスし、10 分ごとに PHP スクリプトを実行します。 -q オプションは、Quiet モードを示します。 「-O temp.txt」は、出力が一時ファイルに送信されることを意味します。
*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.sf.net/myscript.php
5. ini_set 関数の使い方の詳しい説明
PHP ini_set は、関数の実行時に有効になる php.ini の値を設定するために使用されます。スクリプトが終了すると設定は無効になります。 php.ini ファイルを開かずに設定を変更できるため、仮想空間では非常に便利です。 関数形式:string ini_set(string $varname, string $newvalue)すべてのパラメータを設定できるわけではありません。マニュアルのリストを参照できます。 共通設定:
@ ini_set('memory_limit', '64M');menory_limit: スクリプトが適用できる最大メモリ バイト数を設定します。これにより、不適切に作成されたスクリプトがサーバー上の利用可能なメモリを消費するのに役立ちます。 @ 記号は、エラーが出力されないことを意味します。
@ini_set('display_errors', 1);display_errors: エラー メッセージのカテゴリを設定します。
@ini_set('session.auto_start', 0);session.auto_start: セッション処理を自動的に開くかどうか。1 に設定すると、プログラム内で session_start() を使用して手動でセッションを開く必要がなく、セッションを使用することもできます。 パラメータが 0 の場合、セッションはありません。セッションを手動で開くと、エラーが報告されます。
@ini_set('session.cache_expire', 180);session.cache_expire: クライアント キャッシュ内のセッション ページの制限期間 (分) を指定します。デフォルトは 180 分です。 session.cache_limiter=nocache が設定されている場合、ここでの設定は無効になります。
@ini_set('session.use_cookies', 1);session.use_cookies: Cookie を使用してクライアントにセッション ID を保存するかどうか;
@ini_set('session.use_trans_sid', 0);session.use_trans_sid: クリア コードを使用して SID (セッション ID) をクライアントに表示するかどうかURL、デフォルトは、ユーザーにセキュリティ リスクをもたらすため禁止されています: ユーザーは、電子メール/irc/QQ/MSN などを通じて、有効な SID を含む URL を他の人に伝える可能性があります。 有効な SID を含む URL は公共のコンピューターに保存される場合があります。 ユーザーは、固定 SID を持つ URL をお気に入りまたは閲覧履歴に保存できます。 URL ベースのセッション管理には、Cookie ベースのセッション管理よりも常に大きなリスクが伴うため、無効にする必要があります。
PHP のスケジュールされたタスクは非常に興味深いものです。上記は、この記事で提供されるソリューションの一部です。この記事のアイデアを通じて独自のソリューションを開発することもできます。困っているすべての人に役立つことを願っています。
以上がPHP でスケジュールされたタスクを実装する 5 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール
