php_cliモードの紹介
php-cliとはphp Command Line Interfaceの略で、その名の通りWeb上で動作するphp環境とは異なり、コマンドライン上でphpを実行するためのインターフェースです。サーバー (php-cgi、isapi など) つまり、PHP はフロントエンド Web ページを作成できるだけでなく、バックエンド プログラムを作成するためにも使用できます。 PHP CLI シェル スクリプトは、PHP のすべての利点を適用し、サーバー側スクリプト、システム、さらには GUI を備えたアプリケーションの作成を可能にします。 ——注: Windows と Linux は両方とも php_cli モードをサポートしています
PHP-cli アプリケーションのシナリオ:
1. マルチスレッド アプリケーション
この側面の利点 (Niao 兄弟から引用):
利点:
1.プロセス、子プロセスが終了した後、カーネルはリソースをリサイクルする責任があります
2. 複数のプロセスを使用する場合、子プロセスの異常終了によってプロセス全体のスレッドが終了することはありません。プロセスを再構築する
3. タスクの配布のみを担当する常駐メインプロセス
php のマルチスレッド - はい、これは php マルチスレッド アプリケーションです。マルチスレッド (curl は実際のマルチスレッドではなく、シミュレートされたマルチスレッドです)、php_cli モードの php は完全にマルチスレッドです。このとき、phpはLinuxのデーモンプロセスに所属しています。 以前「PHPマルチスレッドによる美人画像の一括収集とダウンロード(続き)」を書いたとき、収集プログラムでマルチスレッドをシミュレートするためにcurlを使用しましたが、ブラウザが実行すると実行タイムアウトまたはメモリアボートも発生します。プログラムは中断されます (完全に成功するまでに数回の試行が必要です)。ただし、php-cli モードで実行すると、プログラムが非常に高速に実行され、PHP マルチスレッド実行の利点が十分に発揮されることがわかります。
注: このマルチスレッド方法はあまり成熟していないため、大規模な生成アプリケーションには適していません。時々使用できます
2. PHP プログラムを定期的に実行する
前に、「PHP スケジュール」の 3 つの方法をまとめました。使用方法の 1 つは、Linux の cron メソッドを使用することです。では、このメソッドはどのようにして PHP プログラムを定期的に実行するのでしょうか?以下を参照してください
3. デスクトップ アプリケーションを開発する
PHP を使用して、Windows または Linux でグラフィカル ユーザー インターフェイス (GUI) アプリケーションを作成できます。必要なのは、PHP のコマンド ライン インターフェイスと GTK のパッケージだけです。これにより、真にポータブルなグラフィカル ユーザー インターフェイス アプリケーションの作成が可能になります (笑、以前は php がデスクトップ プログラムとして使用できることしか知りませんでしたが、今では php_cli モードを使用していることがわかりました)。他に何も学ぶ必要はありません。
4. PHP シェル スクリプトを作成する
bash シェルや Perl の使用方法が分からないが、実行するスクリプトが必要な場合はどうすればよいでしょうか?この時点で、使い慣れた PHP を使用して完全にシェル スクリプトを作成できます。 このとき、突然 PHP が強力すぎると感じませんか。 ——本当にどこでも 1 つの言語を開発します。
PHP_CLIの使い方
次の実行方法を実行します:
php.exeがD:xamppphpにあり、dosコマンドは次のように実行できるとします:
コードをコピーします コードは次のとおりです:次のようになります:
D:xamppphpphp.exe D: xampphtdocstest.php
test.php ファイルを実行します。ここでは、Win プラットフォームでの xampp 統合環境をお勧めします。これは、wamp よりも本当に N 倍強力であり、この統合パッケージは直接 dos モードに入ることができます。
Linux で php_cli を使用するには
まず、php をインストールしたパスを見つけます。例として説明します。
php はパス /usr/local/php/bin/php
Copy の下にインストールされます。コード コードは次のとおりです:
/usr/local/php/bin/php /usr/local/apache/htdocs/a.php
は を実行できます。 php ファイル
PHP_CLI プログラミングで知っておくべきこと
環境が php_cli モードをサポートしていることを検出するにはどうすればよいですか?
コードをコピーします コードは次のとおりです:
//方法 1
if (PHP_SAPI === 'cli' )
{
// ...
}
//方法 2
if (php_sapi_name() === 'cli')
{
// ...
}
PHP_ClI はどのようにパラメータを受け取るのでしょうか?
デフォルト この場合、/usr/local/php/bin/php によって受け取られるパラメータは $argv であり、この変数は固定されています。 PHP ファイルでは、var_dump($argv);
により次の結果が得られます:
このメソッドを一般的に使用される GET/post パラメーター モードに変換する簡単な処理関数を作成できます。
簡単なコード:
コードをコピー コードは次のとおりです:
function parseArgs($argv){
array_shift($argv);
$out = array();
foreach ($argv として $arg){
if (substr($arg,0,2) ) == '--'){
$eqPos = strpos($arg,'=');
if ($eqPos === false){
$key = substr($arg,2); $key] = isset($out[$key]) ? $out[$key] : true;
$key = substr($arg,2,$eqPos-2); ] = substr($arg,$eqPos+1);
}
} else if (substr($arg,0,1) == '-'){
if (substr($arg,2,1) == '='){
$key = substr($arg,1,1);
$out[$key] = substr($arg,3)
} else {
$chars = str_split(substr($arg, 1));
foreach ($chars として){
$out[$key] = isset($out[$key]) : true;
}
} else {
$out[] = $arg;
}
var_dump($argv)
var_dump($argv); 終了;結果:
もちろん、それを達成する方法は複数あります。それを達成するために他の方法を試すこともできます。
例外 php の cli に追加できるパラメータは多数あります。詳しくは、http://php.net/manual/en/features.commandline.php を参照してください。
スケジュールされた実行について
cron は、 Linux でスケジュールされた実行ツールを使用すると、手動介入なしでジョブを実行したり、データのバックアップなどの定期的なジョブを実行したり、/etc/crontab を開いて次のコードを追加します:
コードをコピー
コードは次のとおりです:
/ usr/bin/php -f /data/htdocs/test.php
corntab の詳しい使用方法については、51cto 特別トピック: Linux のスケジュールされたタスク - Cron サービスを参照してください
この記事の参考文献 http://www .jb51.net/article/1716.htm http://www.jb51.net/article/37804.htm http://www.jb51.net/article/37796.htm
注: 2012-06- 16 php_cli プログラミング要件などを追加しました
http://www.bkjia.com/PHPjc/327206.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/327206.html
技術記事
php_cli モードの概要 php-cli は php Command Line Interface の略称で、その名のとおり、Web サーバー上で実行される php 環境とは異なり、コマンドライン上で php を実行するためのインターフェイスです。