0

php スクリプトに bash コマンドを実装し始めたところです。最初のいくつかは正常に動作します。現在、php スクリプトで次の bash コマンドを実行しようとしています。

exec("awk -F: '{printf "www.example.com/2/tks.php?account=%s%%3A%s\n" ,$1, $2 }' < /opt/lampp/htdocs/$filename > /opt/lampp/htdocs/2.txt");

これを入れる前に正常に機能していたphpスクリプトから得られるエラーは

Parse error: syntax error, unexpected 'www' (T_STRING) in /opt/lampp/htdocs/index.php on line 54
4

2 に答える 2

1

文字列内の二重引用符をエスケープする必要があります。

exec("awk -F: '{printf \"www.example.com/2/tasks.php?account=%s%%3A%s\\n\" ,$1, $2 }' < /opt/lampp/htdocs/$filename > /opt/lampp/htdocs/2.txt");
于 2013-07-25T21:33:43.803 に答える
0

printfエラーは、ステートメント内のステートメントの二重引用符をエスケープしていないためですexec

現在の状態では"awk -F: '{printf "、二重引用符で囲まれているため、PHP は文字列の最初の部分として扱います。他の引用符を無視するよう PHP に指示するには、バックスラッシュを使用できます。

次のように変更します。

exec("awk -F: '{printf \"www.example.com/2/tks.php?account=%s%%3A%s\n\" ,$1, $2 }' < /opt/lampp/htdocs/$filename > /opt/lampp/htdocs/2.txt");
于 2013-07-25T21:33:57.470 に答える