• ベストアンサー

PHPでコマンドプロンプトを実行できる?

PHPでコマンドプロンプトを実行できるのでしょうか? 例えば、pingなど。 OSはWindows XPを使っています。よろしくお願いします。

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

  • ベストアンサー
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.4

もう解決しちゃったようですが、コマンド実行した結果の画面表示が必要なければexec()関数も使えますよ。 実行結果は(必要なら)変数に格納されます。

netw2009
質問者

お礼

回答ありがとうございます。 別の方法や、方法の解説等も歓迎です。ありがとうございます。 exec関数も試してみようと思います。

その他の回答 (4)

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.5

> 質問者が理解できるような回答が欲しかったのですが…。 この時点で何が分からなかったか難しい話ですが、 想像を重ねると、コマンドの実行環境に対する誤解 なのでしょうか? cmd.exeはリアルタイム、あるいは会話型でコマンドを 実行する環境を作るプログラムとでも言えばいいでしょ うか。 それに対して、PHPでコマンドを実行するというのは、 PHP自体が会話型とは言えますが、コマンドの実行環境と しては、バッチ型と言えるでしょう。 cmd.exeをPHPで呼び出してコマンドが実行できたとしたら (出来ないでしょうけど) コマンドを実行する人間がサーバ側に必要ということですね。 PHPのsystem自体がコマンドを実行する環境を作っている、 という説明でいいのでしょうか? 疑問点を外していたら、とても恥ずかしい解説ですが。

netw2009
質問者

お礼

回答ありがとうございます。 仰るとおり、私に「コマンドの実行環境に対する誤解」があったようです。頂いた回答を元に勉強しようと思います。

回答No.3

質問者さんの最初に例にあげた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に出力結果が格納されます。 以上です。

netw2009
質問者

お礼

丁寧な回答ありがとうございます。 おかげさまでうまく実行できました。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.2

立派にcmd.exeが実行されていますね。 おめでとうございます。

netw2009
質問者

お礼

回答ありがとうございます。 出来ればイヤミだけでなく、質問者が理解できるような回答が欲しかったのですが…。

回答No.1

http://bg.php.net/manual/ja/function.system.php system関数を使えば実行できます。 詳細は上記マニュアルをご参照ください。

netw2009
質問者

お礼

回答ありがとうございます。 詳細はマニュアルを、ということですが、もしよければ教えてください。 とりあえずコマンドプロンプトを実行できるかな、と思い下記のように書いてみたのですが、最下部のように表示されるだけでした。 コマンドを実行するには、どのようにすればいいのでしょうか? よろしくお願いします。 <?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

関連するQ&A

専門家に質問してみよう