我正在尝试使用symfony Process调用命令,并且命令看起来像这样:
$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终端错误,据我所知,我认为问题出在\
上,但是我试图将其更改为\\
,//
和{{1} },但没有帮助。
答案 0 :(得分:2)
在我看来,您的方法行不通,因为需要在数组中定义新的Process,其中shellcmd的每个部分都是数组中的一个条目。
因此,对于您的情况,您应该写
$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');