2012-01-12 5 views

ответ

3

Вы не котируется вашу команду оболочки, и вы должны бежать $Dname с escapeshellarg(). Примечание. Я также избежал кавычек в выражении sed, хотя в этом случае их можно было бы заменить на одинарные кавычки без негативных эффектов.

$Dname = escapeshellarg($Dname); 
shell_exec("cat $Dname.txt . | sed \"s#,]}#]}#g\" > {$Dname}2.txt"); 
+0

Работал! Спасибо, Майкл –

1

Вы можете сделать это, но, как и любой другой строки в PHP, это необходимо процитировать:

shell_exec('cat '.$Dname.'.txt | sed "s#,]}#]}#g" > '.$Dname2.'.txt'); 

Вы должны избежать ввода пользователя, в случае необходимости, с escapeshellarg().