- ベストアンサー
PHPでコマンドプロンプトを実行できる?
PHPでコマンドプロンプトを実行できるのでしょうか? 例えば、pingなど。 OSはWindows XPを使っています。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
もう解決しちゃったようですが、コマンド実行した結果の画面表示が必要なければexec()関数も使えますよ。 実行結果は(必要なら)変数に格納されます。
その他の回答 (4)
- Tasuke22
- ベストアンサー率33% (1799/5383)
> 質問者が理解できるような回答が欲しかったのですが…。 この時点で何が分からなかったか難しい話ですが、 想像を重ねると、コマンドの実行環境に対する誤解 なのでしょうか? cmd.exeはリアルタイム、あるいは会話型でコマンドを 実行する環境を作るプログラムとでも言えばいいでしょ うか。 それに対して、PHPでコマンドを実行するというのは、 PHP自体が会話型とは言えますが、コマンドの実行環境と しては、バッチ型と言えるでしょう。 cmd.exeをPHPで呼び出してコマンドが実行できたとしたら (出来ないでしょうけど) コマンドを実行する人間がサーバ側に必要ということですね。 PHPのsystem自体がコマンドを実行する環境を作っている、 という説明でいいのでしょうか? 疑問点を外していたら、とても恥ずかしい解説ですが。
お礼
回答ありがとうございます。 仰るとおり、私に「コマンドの実行環境に対する誤解」があったようです。頂いた回答を元に勉強しようと思います。
- hogehoge78
- ベストアンサー率80% (433/539)
質問者さんの最初に例にあげたpingに関してですが、 <?php system('ping www.google.co.jp'); ?> とすれば、Googleへのpingの実行結果がブラウザに表示されます。 system関数は、OSがWindowsXPであった場合は、cmd.exe(コマンドプロンプト)内で入力するコマンドを記述すればそれが実行されます。 直接ブラウザに出力されては困る、ということであれば、 <?php ob_start(); system('ping www.google.co.jp'); $OUT = ob_get_contents(); ob_end_clean(); ?> などとして、やれば、変数$OUTに出力結果が格納されます。 以上です。
お礼
丁寧な回答ありがとうございます。 おかげさまでうまく実行できました。
- Tasuke22
- ベストアンサー率33% (1799/5383)
立派にcmd.exeが実行されていますね。 おめでとうございます。
お礼
回答ありがとうございます。 出来ればイヤミだけでなく、質問者が理解できるような回答が欲しかったのですが…。
- hogehoge78
- ベストアンサー率80% (433/539)
http://bg.php.net/manual/ja/function.system.php system関数を使えば実行できます。 詳細は上記マニュアルをご参照ください。
お礼
回答ありがとうございます。 詳細はマニュアルを、ということですが、もしよければ教えてください。 とりあえずコマンドプロンプトを実行できるかな、と思い下記のように書いてみたのですが、最下部のように表示されるだけでした。 コマンドを実行するには、どのようにすればいいのでしょうか? よろしくお願いします。 <?php $pass = "C:\\WINDOWS\\system32\\cmd.exe"; system($pass); ?> Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Program Files\Apache Software Foundation\Apache2.2\htdocs
お礼
回答ありがとうございます。 別の方法や、方法の解説等も歓迎です。ありがとうございます。 exec関数も試してみようと思います。