このコマンドをコマンド ライン (Mac OS X) で実行すると、次のようになります。
echo -n "hello" > foo-cmd.txt
期待どおりの結果が得られます。つまり、末尾に改行がないfoo-cmd.txt
" " を含むファイルです。hello
ただし、この PHP コードを実行すると、次のようになります。
<?php
shell_exec("echo -n \"hello\" > foo-php.txt");
?>
foo-php.txt
テキスト " -n hello
" の後に改行が続くファイルを取得します! 言い換えれば、引数は引数-n
として扱われるのではなく、出力として忍び込みます!
この問題を解決するにはどうすればよいですか?