PHP Windows 版で 外部プログラムを実行したいと考えています。


具体的には PHP を実行しているディスク(パーティション)の残容量を取得したいだけなのですが、プロセスの制約(Unable to fork という PHP のエラーが出力される)で exec や shell_exec は使えません。
#Dos プロンプトで dir "(PHPのファイル名)" を実行すればいいだけなんですが・・・

代わりに COM クラスが使えそうなのですが、

$com = new COM("WScript.Shell");
$ret = $com->Run("dir");

などやってみても CGI Timeout になってしまいます。

Windows XP Pro SP2 + IIS + PHP 5 です。

外部プログラムを実行せずディスク残容量が取れる方法があればそれでもかまいません。

参考となる方法など教えてください。

※IIS のセキュリティレベルを下げる、などの方法はなしということで・・・

回答の条件
  • 1人2回まで
  • 登録:2006/03/31 18:36:21
  • 終了:2006/03/31 22:52:28

回答(1件)

id:tadashi0805 No.1

tadashi0805回答回数287ベストアンサー獲得回数292006/03/31 19:01:49

ポイント60pt

dirコマンドは、コマンドプロンプトの内部コマンドなので、PHPのexec()などで、そのままでは使えないと思います。

コマンドを、

command.com /c dir ディレクトリ名

にしてもダメでしょうか?

id:yoski

うーん、難しいです。

Warning: exec() [function.exec]: Unable to fork [command.com /c dir (ディレクトリ名)...

shell_exec() も同様です。

2006/03/31 19:04:57

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません