如果我在命令行中運行這個命令(在我的Mac OS X):一個奇怪的,但可能是簡單的,了shell_exec問題
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
作爲輸出潛入,而不是被視爲參數!
我該如何解決這個問題?
你如何弄清楚(從系統到系統,還是從一個PHP版本到另一個版本)shell_exec是否正在使用它自己的特定命令的內置版本? – Enchilada 2012-07-05 11:14:47
@Enchilada它不是'shell_exec',它有問題 - shell_exec調用的系統shell具有內置插件。簡單的答案是,不要使用'shell_exec'來執行幾行PHP代碼。 – Alnitak 2012-07-05 11:16:23