2014-02-25 76 views
0

我嘗試了以下兩行PHP中:exec語句中的語法錯誤?

echo exec('tail -n +5 $newname2.ppm | tr -d "\r \n" | tr -d "55" > $newname2.ppm1'); 
echo exec('sed "s/2/1/g" $newname2.ppm1 > $newname2.ppm2'); 

但是什麼也沒有發生。

我該如何重寫這兩行,或者它是作爲執行工作,還是直接在php中?

+0

什麼語法!在這裏寫錯誤 –

+0

我不知道,它只是不會做它在命令行上會做的事情,沒有錯誤,沒有日誌 –

+0

如果我替換$ newname2.ppm $ newname2.ppm1和$ newname2。 ppm2與/var/www/BB/images/backgrounds/news0000.ppm/var/www/BB/images/backgrounds/news0000.p。 pm1 /var/www/BB/images/backgrounds/news0000.ppm2然後它工作。 –

回答

0

我發現這個問題,... ...有它的特殊字符,如「\ r \ n

我把它改爲:

$cmd_1 = "tail -n +4 " . $newname2ppm . " | tr -d \"\\r \\n\" | tr -d \"55\" > " . $newname2ppm1; 
echo "<br />cmd_1 = " . $cmd_1; 
$cmd_2 = "sed \"s/2/1/g\" " . $newname2ppm1 . " > " . $newname2ppm2; 
echo "<br />cmd_2 = " . $cmd_2; 

echo exec($cmd_1); 
echo exec($cmd_2); 

現在,它的工作原理