passthru

外部プログラムを実行し、未整形の出力を表示する

説明

falsenull passthru(string $command, int &$result_code = null)

passthru関数はexec関数と同様、 commandを実行します。 引数 return_code を指定した場合、 Unix コマンドのステータスで置換されます。 この関数は Unix コマンドからの出力がバイナリデータであり、 ブラウザーへ直接返す必要がある場合、exec もしくはsystemの代わりに使用する必要があります。 よく使うのは、直接画像ストリームを出力することができる pbmplus ユーティリティの様なものを実行する場合です。content-type を image/gif に設定して、gifを出力するpbmplus プログラムを呼び出すことにより、直接画像を出力する PHP スクリプトを作成 することができます。

パラメータ

command

実行するコマンド

result_code

引数result_codeが存在する場合、 Unix コマンドのステータスがこの変数に書かれます。

戻り値

成功した場合に null を、失敗した場合に false を返します.

エラー / 例外

passthrucommand を実行できない場合、E_WARNING が発生します。

command が空だったり、null バイトが含まれている場合、 ValueError がスローされます。

変更履歴

バージョン 説明
8.0.0 command が空だったり、null バイトが含まれている場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、 E_WARNING が発生し、false を返していました。

注意

警告

ユーザーが入力したデータをこの関数に 渡すことを許可する場合、ユーザーが任意のコマンドを実行できるようシステムを欺くことが できないように escapeshellarg または escapeshellcmd を適用する必要があります。

注意:

プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、 プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。 そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。

参考