2014-02-25 91 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); 

现在,它的工作原理