2006年7月13日

[PHP-users 29789]Windows版 PHPで system関数が動作しない

田中久太郎です。

Windows版のPHP 5.1.4 (Apache 2.0.58)で、system関数を使って
PostgreSQLのpsqlコマンドを動かそうとしているのですが、
エラーとなってしまいます。

【ソース】
$command = '"C:\Program Files\PostgreSQL\8.1\bin\psql" -U foo -f

"C:\Documents and Settings\foo\My Documents\data.sql" testdb 2>&1';
$lastline = system($command, $retval);

【エラーメッセージ】
'C:\Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

$command が

'"C:\Program Files\PostgreSQL\8.1\bin\dropdb" -U foo testdb'

のようなコマンドだと動作するので、コマンドの引数にダブルクォーテー
ションがあるとまずいのかなと思っているのですが、ダブルクォーテー
ションをはずすわけにもいかず困っています。

このエラーを回避する方法をご存知の方がいらっしゃったらご教示ください。
よろしくお願いします。


_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3

投稿者 xml-rpc : 2006年7月13日 23:40
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/39524
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。