passthru
(PHP 4, PHP 5, PHP 7)
passthru — 外部プログラムを実行し、未整形の出力を表示する
説明
passthru
( string $command
[, int &$return_var
] ) : void
passthru()関数はexec()関数と同様、
command
を実行します。
引数 return_var
を指定した場合、
Unix コマンドのステータスで置換されます。
この関数は Unix コマンドからの出力がバイナリデータであり、
ブラウザーへ直接返す必要がある場合、exec()
もしくはsystem()の代わりに使用する必要があります。
よく使うのは、直接画像ストリームを出力することができる pbmplus
ユーティリティの様なものを実行する場合です。content-type を
image/gif
に設定して、gifを出力するpbmplus
プログラムを呼び出すことにより、直接画像を出力する PHP スクリプトを作成
することができます。
パラメータ
command
- 実行するコマンド
return_var
- 引数
return_var
が存在する場合、 Unix コマンドのステータスがこの変数に書かれます。
返り値
値を返しません。
注意
警告 ユーザーが入力したデータをこの関数に 渡すことを許可する場合、ユーザーが任意のコマンドを実行できるようシステムを欺くことが できないように escapeshellarg() または escapeshellcmd() を適用する必要があります。
注意:
プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、 プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。 そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。
参考
- exec() - 外部プログラムを実行する
- system() - 外部プログラムを実行し、出力を表示する
- popen() - プロセスへのファイルポインタをオープンする
- escapeshellcmd() - シェルのメタ文字をエスケープする
- バックティック演算子