質問: 例えばあるプログラムがあり 以下で起動できるものがあります。 ``` > cd Hoge > bin/release ``` でHoge内部に入り各種コマンドを打って操作できるものがります。 ``` Hoge > init Hoge > add 1 Hoge > add 2 Hoge > add 3 Hoge > result 6 ``` これをphpで操作したいです。 phpでコマンドを使う方法として以下ページを見つけたので https://techacademy.jp/magazine/11662 exec()を使えばできそうかなと思ったのですが、戻り値が帰ってきませんでした。 ```
回答: PHP から 対話シェルでパラメータを与えるコマンドを実行したいということでしょうか? php だけで完結させるなら proc_open を使って、コマンドに文字列を与えます。 proc_open を使用している例が、見つかったので記載しておきます。 * PHPで対話シェルを自動化する話。 * php の proc_open() を利用した openssl コマンドの実行 また、別の方法としては、「対話的なプログラムとのやりとりを自動化するプログラム expect」を使う方法もあります。 こちらは、php に限らないので、例が多く見つかります。 (php からは、 exec("expect -c \"〜\" ") のようなかんじで実行します。) * Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- * 対話式のコマンドをスクリプト化する方法 * 対話型コマンドの自動実行 "expect" * 対話的なコマンドの自動実行(expect) * 対話型のコマンドを自動化できるexpectコマンド