php5.4で変数に格納されたデータを外部コマンドに標準出力で渡し、外部コマンドの出力結果を変数で受け取りたいのですが、そのやり方がありましたら教えて下さい。


具体的には、変数内の画像データをImageMagick(convertコマンド)に渡し、加工したものをブラウザに出力させたいのです(都合によりPECLのimagickは使いません)。

なお、申し訳ありませんが一時ファイルを作成し、データを渡すやり方はNGとします。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/05/12 19:13:44
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

ポイント50pt

proc_open() 関数を使います。
http://www.php.net/manual/en/function.proc-open.php#refsect1-function.proc-open-examples

マニュアルにあるサンプルでは、php をコマンドとして呼び出し、php の標準入力で小さなソースを渡して、標準出力から、その実行結果を受け取ります。

id:wankodon

想定している用途に使えそうです。
回答ありがとうございます。

2012/05/12 19:13:26

その他の回答1件)

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

ポイント50pt

結局、php.iniのsafe_mode_exec_dirにImageMagickの存在するパスを設定してあげただけで解決しました。
PHPで書いたスクリプトです。 - foo.php - <?php exec(”ls -la”).. - 人力検索はてな

追記:safe_mode_exec_dirは5.4で削除されたみたいです。

id:wankodon

ありがとうございます。参考にさせて頂きます。

2012/05/12 19:11:25
id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

ポイント50pt

proc_open() 関数を使います。
http://www.php.net/manual/en/function.proc-open.php#refsect1-function.proc-open-examples

マニュアルにあるサンプルでは、php をコマンドとして呼び出し、php の標準入力で小さなソースを渡して、標準出力から、その実行結果を受け取ります。

id:wankodon

想定している用途に使えそうです。
回答ありがとうございます。

2012/05/12 19:13:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません