アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPでコマンドプロンプトを実行できるのでしょうか?

例えば、pingなど。

OSはWindows XPを使っています。よろしくお願いします。

A 回答 (5件)

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


実行結果は(必要なら)変数に格納されます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

別の方法や、方法の解説等も歓迎です。ありがとうございます。

exec関数も試してみようと思います。

お礼日時:2009/06/03 13:11

> 質問者が理解できるような回答が欲しかったのですが…。



この時点で何が分からなかったか難しい話ですが、
想像を重ねると、コマンドの実行環境に対する誤解
なのでしょうか?

cmd.exeはリアルタイム、あるいは会話型でコマンドを
実行する環境を作るプログラムとでも言えばいいでしょ
うか。

それに対して、PHPでコマンドを実行するというのは、
PHP自体が会話型とは言えますが、コマンドの実行環境と
しては、バッチ型と言えるでしょう。

cmd.exeをPHPで呼び出してコマンドが実行できたとしたら
(出来ないでしょうけど)
コマンドを実行する人間がサーバ側に必要ということですね。

PHPのsystem自体がコマンドを実行する環境を作っている、
という説明でいいのでしょうか?

疑問点を外していたら、とても恥ずかしい解説ですが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2009/06/09 21:57

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

以上です。
    • good
    • 1
この回答へのお礼

丁寧な回答ありがとうございます。

おかげさまでうまく実行できました。

お礼日時:2009/06/03 03:52

立派にcmd.exeが実行されていますね。


おめでとうございます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2009/06/03 03:51

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

回答ありがとうございます。
詳細はマニュアルを、ということですが、もしよければ教えてください。

とりあえずコマンドプロンプトを実行できるかな、と思い下記のように書いてみたのですが、最下部のように表示されるだけでした。
コマンドを実行するには、どのようにすればいいのでしょうか?

よろしくお願いします。


<?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

お礼日時:2009/06/02 23:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!