• ベストアンサー

PHPでexeファイル実行

C言語でMPG形式の画像ファイルを読み込み、画像処理をしてテキスト形式で画像データを出力するプログラムを作成したのですが、 これをPHPプログラム内で動作させ、テキストデータ(できればバイナリのほうがいい)を読み取りたいと思います。 これはexeファイルをexecやsystem関数で実行することで解決できるのでしょうか? また、C言語の画像処理プログラムが画像を読み込んでからテキストデータを作成するまで1分ほどのタイムラグがあります。 どうすればPHP内の処理でexeファイル実行→exeがデータベースから画像を読み込む→ 1分処理待ち→テキスト作成→作成されたテキストデータをPHPで読み込み とできるのでしょうか? ちなみに、exeファイルとphpで作成した画像データベースはサーバー機に置くつもりです。 テキストデータを介さなくても、C言語プログラムからphpに直接データを渡す方法があればそちらのほうが望ましいです。 連続投稿で申し訳ないのですが、急を要するのでぜひともご解答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tecinfo
  • ベストアンサー率52% (32/61)
回答No.2

こんにちは。 質問の内容がちゃんと理解できていないかも知れませんが、、 passthru関数で解決できるかと思います。 == 参考 == ob_start(); passthru("/path/to/画像変換プログラム [引数]"); $var = ob_get_contents(); ob_end_clean(); //Use this instead of ob_flush() ========== * プログラムは「User Contributed Notes」から引用 passthru関数はそのままではブラウザに処理結果を表示してしまうので、出力制御関数を用いて、その出力を$varに拾っています。 画像変換プログラムは処理結果を標準出力に吐き出してください。 あと >テキストデータを作成するまで1分ほどのタイムラグがあります。 passthru関数は第一引数の処理が終わるまで待ってくれるはずなので、問題無いかと思います。

参考URL:
http://jp2.php.net/manual/ja/function.passthru.php
seagal07
質問者

お礼

お返事遅れて申し訳ありません、ご回答の通りに実行したら 成功したことに舞い上がってすっかりお礼を忘れていました。 どうもありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

遅いかもしれないけど 非同期で動くように処理を考えればいいです。 1分待つのもどういう状態が終了しているかを判断して次の処理が正常に動くようにすればいいです。 「テキスト形式で画像データ」と言うのはUuencodeの事? 普通にバイナリで出力すれば良いと思うけど、何か理由があるんでしょうね。

seagal07
質問者

お礼

説明不足で申し訳ありません、テキスト形式で画像データというのは、 テキストファイルに画像のヒストグラムデータを記録しているだけです。 返信がずいぶん遅れてしまいましたが、どうもありがとうございました。 おかげさまで成功しました。

すると、全ての回答が全文表示されます。
ドラム交換のリセットについて
このQ&Aのポイント
  • ドラム交換の表示が出たため、黒とカラーのドラムを交換しました。
  • タッチパネルのトナー表示を5秒長押しして黒はリセット設定ができましたが、カラー3色はリセットができません。
  • タッチパネルのトナー表示を5秒長押ししても、ドラムリセットの表示が出てこないため、カラーのリセットができません。
回答を見る

専門家に質問してみよう