exec()
は指定された
command
を実行しますが、一切の出力はありま せん。ただ単に、コマンド結果の最後の行を返すだけです。コマンドを実行
し、一切干渉を受けずに直接コマンドから全てのデータを受けとる必要が あるならば、
PassThru()
関数を使ってください。
引数
array
が存在する場合、指定した配列は、 コマンドからの出力の各行で埋められます。配列に既に何らかの要素が 含まれる場合は、
exec()
は配列の最後に追加される ことに注意してください。関数が要素を追加することを望まないのなら、 それが
exec()
に渡される前に、配列の
unset()
を呼び出してください。 引数
return_var
が、引数
array
と共に存在する場合、実行したコマンドの ステータスがこの変数に書かれます。
ユーザ入力によるデータを、この関数に渡すことを許可したいのであれば、
ユーザがシステムをだまして勝手なコマンドを実行できないように、
escapeshellcmd()
を使うべきです。
この関数を使用してプログラム実行を開始し、バックグラウンドで実行
したままにしたい場合には、プログラムの出力をファイルまたは他の出
力ストリームにリダイレクトする必要があることにも注意して下さい。
さもないと、PHPはそのプログラムの実行が終了するまでハングします。
system()
,
passthru()
,
popen()
,
escapeshellcmd()
,
backtick 演算子
も参照ください。