我试图使用symfony进程调用命令,命令如下:
$data = escapeshellarg("public\uploads\post_data.txt");
$url = "www.example.com/";
$process = new Process(['ab -n 10 -p '.$data.' -T application/x-www-form-urlencoded -w '. $url . 'test/send']);
$process->run();
当我从终端调用此命令时它工作正常,但当我尝试使用symfony命令调用它然后我得到:The filename, directory name, or volume label syntax is incorrect.
此错误是Windows终端错误,因为我知道,我认为问题是与\
但我试图改变它到\\
,//
和/
但没有帮助。
在我看来,你的方法不起作用,因为需要在数组中定义新的进程,其中每个shell cmd都是数组中的一个条目。
所以对于你的情况,你应该写
$process = new Process(['ab', '-n', 10, '-p', $data, '-T', 'application/x-www-form-urlencoded', '-w', $url.'test/send']);
或者尝试使用fromShellCommandline静态函数
$process = Process::fromShellCommandline('ab -n 10 -p '.$data.' -T application/x-www-form-urlencoded -w '. $url . 'test/send');