外部システムの機能コマンドPHP

、水文学の一般的な機能のPHPを実行するために使用される要約します

A、システム()関数

(PHP 4、PHP 5、PHP 7)

  • 介绍:外部プログラムとディスプレイ出力を実行します

  • 说明

system( string $command[, int &$return_var] ) : string

システム()関数のCバージョンと同様に、この機能は、コマンドは、コマンドパラメータで指定され、その結果を出力実行します。
PHPがサーバーモジュールで実行されている場合、システム()関数は、出力の各行の完了後にしようとするだろう、出力キャッシュは、自動的にWebサーバーを更新します。
関数の実行後、コマンドは、端末のウィンドウに結果を印刷する
コマンドは、任意の処理をせずに使用パススルー()関数を生出力を取得する場合。

  • 参数
    コマンド
    実行するコマンド。
    return_var
    return_varパラメータを提供する場合、外部コマンドは、ステータスがこの変数の実行後に設定されます返します。
  • 返回值
    成功したコマンドは、失敗した場合にFALSEを出力の最後の行を返します。
<?php
system('whoami');
?>

二、パススルー()関数

(PHP 4、PHP 5、PHP 7)

  • 介绍:外部プログラムを実行し、生の出力を表示します

  • 说明

passthru( string $command[, int &$return_var] ) : void

()関数は、exec、パススルー()関数と同様であり、外部コマンド(コマンド)を実行するために使用されています。ブラウザに直接転送されるバイナリデータ、及びニーズUnixコマンド出力を実行するとき、exec()またはシステム()関数を使用してこの機能を交換する必要があります。そのようなものとしては、直接画像ストリームのようなコマンド出力PBMPLUSを実行するために使用されてもよいです。設定することで、あなたは画像/ gif形式への出力画像のコンテンツタイプすることができますし、直接ブラウザにPHPスクリプトからPBMPLUSプログラム出力gifファイルを呼び出します。

  • 参数
    コマンド
    実行するコマンド。
    return_var
    提供return_varパラメータのUnixコマンドの戻りステータスは、このパラメータのために記録される場合。
  • 返回值
    戻り値なし。
<?php
passthru('whoami');
?>

三、EXEC()関数

(PHP 4、PHP 5、PHP 7)

  • 介绍:外部プログラムを実行
  • 说明
exec( string $command[, array &$output[, int &$return_var]] ) : string
exec() 执行 command 参数所指定的命令。 
  • 参数
    コマンド
    実行するコマンド。
    出力
    出力パラメータが提供される場合、それは出力コマンドのアレイを充填する、出力アレイの行ごとに要素が充填されています。配列内のデータは、このような\ n文字として行の空白終わりが含まれていません。アレイは、既にいくつかの要素が含まれる場合、EXEC()関数は、配列の末尾に追加コンテンツであることに注意してください。あなたは、配列の最後に追加したくない場合は、配列の着信のexec()関数の前に()関数をリセットするには、unsetを使用します。
    return_var
    出力とreturn_varパラメータの両方が戻って、そのステータスコマンドは、この変数に書かれている場合。
  • 返回值
    最後の行のコマンドの実行結果。あなたは、出力データのすべてが未処理取得する必要がある場合は、パススルー()関数を使用します。
    あなたは、出力コンテンツ取得コマンドにしたい場合は、出力パラメータを使用してください。
  • 总结:システムコマンドを実行しますが、それは自身の出力とエコー/印刷の例に沿っていません。
<?php
echo exec('whoami');
或将获取的数据传入一个数组
exec('ipconfig',$out);
var_dump($out);
?>

四、もしくはshell_exec

(PHP 4、PHP 5、PHP 7)

  • 介绍:シェル環境を通じて実行し、文字列の完全な出力が返されます。
  • 说明
shell_exec( string $cmd) : string
本函数同 执行操作符。 
  • 参数
    cmdの
    コマンドが実行されます。
  • 返回值
    コマンド実行の出力。エラーが出力を生成しない、実行または処理中に発生した場合は、NULLが返されます。
  • Note
    エラーは、プロセス実行中に発生した場合に、またはプロセス値が正常に実行される処理により検出され、この関数が返すを使用することができない、したがって、出力、戻り値NULLを生成しません。あなたが実装プロセスの終了コードを確認する必要がある場合は、EXEC()関数を使用します。
  • 要約:機能も表示内容にエコー/印刷出力を使用する必要性と、EXEC()関数と同様に、システムコマンドを実行します
<?php
echo shell_exec('whoami');
?>

五、抗アポストロフィ: `

同じ機能もしくはshell_exec関数。
もしくはshell_execは、例えば、実際にはその変異体、およびもしくはshell_execを使用することです。

<?php
echo `whoami`;
?>

第六に、間の違い

(1)システムと判別パススルー
パススルーできるよう画像データとして出力するバイナリデータ、
(2)との差EXECもしくはshell_exec
Execでのみデータの最後の行、及び取得したデータは、完全なリターンもしくはshell_execことができ、取得したデータを返します

<?php
echo exec('ipconfig');
//echo shell_exec('ipconfig');
?>

:出力および戻り値が異なる、戻り値がメモリに格納され、必要なエコー/印刷出力が利用可能である、機能がコマンド体系、結果出力コマンドの後に実行される理由このようなシステムは、例えば、それが出力されないことが理解されるであろう戻り値(すなわち、彼はデータの最後の行を呼び出して)
2つのコード以下のコンパレータの出力を理解するために、例えば、その例に理解することができます。

<?php
system('whoami');
?>

<?php
echo system('whoami');
?>

また、あなたは最後の2行を見ることができ、比較することでipconfigやifconfigコマンドを使用することができます

公開された152元の記事 ウォン称賛63 ビュー60000 +

おすすめ

転載: blog.csdn.net/qq_41617034/article/details/105302193