Windows Symfony命令查找文件夹
我尝试使用symfony进程调用命令,命令如下所示:Windows Symfony命令查找文件夹,windows,symfony,terminal,command,Windows,Symfony,Terminal,Command,我尝试使用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(); 当我从终端调用
$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命令调用它时,我得到:
文件名、目录名或卷标语法不正确。据我所知,此错误是windows终端错误,我认为问题在于\但我已尝试将其更改为\\、//和/但没有帮助 在我看来,您的方法不起作用,因为新流程需要在数组中定义,其中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');
尝试使用escapeshellargs->,也许使用sprintf构建shellcommand字符串不是一个坏主意。@rebru尝试过。没有什么变化。同样的错误。你能用symfony execute方法显示整个命令吗?当您转储保存shellcmd的$variable时,它的格式是否正确?@rebru更新了问题。添加了执行。当我转储数据时,它会显示正确的格式。根据文档,我会说,你的方法不可能做到这一点。我想说,您必须使用这里描述的Process::fromShellCommandline方法->使用OS Shellyes中的功能。我以前用过它,但说它错了。在您对fromShellCommandline发表评论之后,我再次尝试了它,现在它可以工作了。完美的谢谢您: