[PHP-users 29789] Windows版 PHPで system関数が動作しない
田中 靖宏
tanaq @ ca2.so-net.ne.jp
2006年 7月 13日 (木) 23:40:18 JST
田中久太郎です。
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 メーリングリストの案内