質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1793閲覧

phpでlinuxコンソールを操作する方法

kaji

総合スコア648

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2017/10/06 01:31

編集2017/10/06 01:41

例えばあるプログラムがあり
以下で起動できるものがあります。

> 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 exec(__DIR__ . '/Hoge/bin/release; init; add 1; add 2; add3; result', $output, $return_var); var_dump($return_var); // ここで6を表示させたいが戻り値が帰ってこず待機状態となる。

どのようにすればphpでコンソールを操作できますでしょうか?
それともそのそもそのようなことはできないのでしょうか?

php -v PHP 5.6.29 (cli) (built: Dec 9 2016 07:03:56) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/10/06 01:35

「色々調べて」とありますが参考先のURLなどを質問本文に追記いただけますか?また、PHPのバージョンなど環境情報も追記してください。
kaji

2017/10/06 01:41

追記しました。
guest

回答2

0

ベストアンサー

PHP から 対話シェルでパラメータを与えるコマンドを実行したいということでしょうか?

php だけで完結させるなら proc_open を使って、コマンドに文字列を与えます。

proc_open を使用している例が、見つかったので記載しておきます。

また、別の方法としては、「対話的なプログラムとのやりとりを自動化するプログラム expect」を使う方法もあります。
こちらは、php に限らないので、例が多く見つかります。
(php からは、 exec("expect -c "〜" ") のようなかんじで実行します。)

投稿2017/10/06 02:14

編集2017/10/06 02:18
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaji

2017/10/06 14:39

expectを使って無事やりたいことができました。ありがとうございます。
guest

0

PHPの場合、外部コマンドの実行コマンドは大きく5つあります

また、popenを利用することも可能です

投稿2017/10/06 01:46

yambejp

総合スコア114736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaji

2017/10/06 14:40

参考にさせていただきました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問