ホームページ  >  記事  >  バックエンド開発  >  PHPでpingコマンドをシミュレートする(php exec関数の使い方)_PHPチュートリアル

PHPでpingコマンドをシミュレートする(php exec関数の使い方)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:26:011125ブラウズ

PHP を使用して、一般的に使用される DOS コマンド ping コマンドをシミュレートします。ここで主に使用されるのは、PHP の組み込み関数 exec を使用してシステムの ping コマンドを呼び出し、ping コマンド機能を実現することです。

コードをコピー コードは次のとおりです:

$to_ping='www.phpernote.com';
$count=2;
$psize=66;
echo "phpの実行ping コマンド、お待ちください...n

";
flush();
while(1){
echo "
";
exec("ping -c $count -s $ psize $ to_ping", $list);
for($i=0;$i print $list[$i]."n";
}
echo "< /pre> ;";
flush();
sleep(3);
}
?>

exec 関数を使用するには、サーバーがシステム組み込み関数の呼び出しをサポートする必要があることに注意してください。また、system などの PHP 組み込み関数を使用してこの機能を実現することもできます。 PHP マニュアルでは、次の 2 つの関数について説明しています:
exec --- 外部プログラムを実行します
構文: string exec ( string command [, array &output [, int & return_var]] )
説明:
exec( ) は、指定されたコマンド command を実行します。コマンドを実行してコマンドからすべてのデータを取得する必要がある場合は、 passthru() 関数を使用できます。
パラメーター配列が指定されている場合、指定された配列にはコマンドによって出力された各行が書き込まれます。配列に既に要素が含まれている場合、exec() はそれを配列の末尾に追加します。この関数で要素を追加したくない場合は、配列を exec() に渡す前に unset() を呼び出すことができます。
パラメータ array と return_var が指定されている場合、返されたステータス コマンドはこの変数に書き込まれます。
注: ユーザー入力からのデータがこの関数に渡されることを許可する場合は、ユーザーがシステムをだまして任意のコマンドを実行できないようにするために、escapeshellcmd() を使用する必要があります。
注: この関数を使用してプログラムを開始し、バックグラウンドで実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたは出力データ ストリームにリダイレクトされていることを確認する必要があります。そうしないと、PHP がハングアップします。プログラムの実行が終了します。

system --- 外部プログラムを実行し、出力を表示します。
構文: string system (string command [, int &return_var])
説明:
system() は、指定されたコマンド command を実行し、結果を出力します。パラメータ return_var が指定されている場合、実行されたコマンドのステータス コードがこの変数に書き込まれます。
注: ユーザー入力からのデータがこの関数に渡されることを許可する場合は、ユーザーがシステムをだまして任意のコマンドを実行できないようにするために、escapeshellcmd() を使用する必要があります。
注: この関数を使用してプログラムを開始し、バックグラウンドで実行中にそのプログラムを残しておきたい場合は、プログラムの出力がファイルまたは出力データ ストリームにリダイレクトされていることを確認する必要があります。そうしないと、PHP がハングアップします。プログラムの実行が終了します。
これらはどちらもシステム シェル コマンドを呼び出すために使用されます。違いは、
exec はすべての実行結果を $output 関数 (配列) に返すことができ、$status は実行のステータスであり、0 は成功を意味し、1 は失敗を意味します。結果を直接返す $output 関数を指定する必要はありません。同様に、$return_var は実行ステータス コードです。 0 は成功、1 は失敗です。 実行例:


コードは次のとおりです。 $a = exec("dir",$out,$status); print_r($out);
システムの例:



コードをコピーします

コードは次のとおりです:

$a = system("dir",$out);
print_r($a); ($out);

http://www.bkjia.com/PHPjc/824865.html

www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/824865.html技術記事

PHP を使用して、一般的に使用される DOS コマンド ping コマンドをシミュレートします。ここで主に使用されるのは、PHP の組み込み関数 exec を使用してシステムの ping コマンドを呼び出し、ping コマンド機能を実現することです。 コードをコピー...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。