こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHP(Windows)でコマンド実行

Windows上のapacheとPHPで、ベーシック認証のIDとパスワードを登録する仕組みを作成しているのですが、execが思ったように動きません。

以下にその部分だけを実行できるものを書きます。

<?php
$com="C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe C:\\Program Files\\xampp\\apache\\.htpasswd id pass";

//$com="\"C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe\" \"C:\\Program Files\\xampp\\apache\\.htpasswd\" id pass";


//$com="dir";

exec($com,$output);

print_r($output);
?>

原因はなんとなく、プログラムとパスワードファイルのパスの中にあるスペース(Program Files)だと思い、二重引用符で囲ってみたりした(一つ目のコメントのように)のですが、結果は同じでした。
二つ目のコメントのようなdirコマンドはちゃんと動きます。

どのようにすれば、パスを指定した実行ファイルが動作するのでしょうか?

投稿日時 - 2007-05-15 18:00:56

QNo.3002485

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

Windowsでコマンドプロンプトを開いて、
C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe C:\\Program Files\\xampp\\apache\\.htpasswd id pass
"C:\\Program Files\\xampp\\apache\\bin\\htpasswd.exe" "C:\\Program Files\\xampp\\apache\\.htpasswd" id pass
を実行してみるとちゃんと動きますか?

コマンドの書き方はしたのほうで間違ってないと思います。

投稿日時 - 2007-05-16 15:25:13

補足

コマンドプロンプトからは実行できます。

この質問を書いてから、いろいろ実行してみたのですが、どうもexeの実行プログラムが動かないようで、パスの問題ではないようです。
dirやpathなどの内部コマンドは正常に動きます。

PHPの設定やWindowsの設定でしょうか?

投稿日時 - 2007-05-16 15:51:20