在Linux上,我可以如下使用SELECT LEN(LEFT(address, PATINDEX('%[A-Z]%', address)-1)) AS doorNoLength
在后台中运行命令:
env: flex
请注意,以上行不会等待结果,并且代码将立即恢复。
如何在Windows上实现它?最好是Windows内置的东西。
答案 0 :(得分:1)
我将针对此用例签出Symfony Process组件。它提供了用于同步和异步执行的方法。可以通过Composer轻松安装,但是至少需要PHP 7.1。
该文档可以在这里找到:https://symfony.com/doc/current/components/process.html
您的用例示例如下:
$process = new Process(['curl', '--data', $data, $url]);
$process->start();
请注意,我省略了-o
选项,因为除非明确要求,否则子进程的输出不会显示。
快速浏览后发现,有一些帖子说Windows上的start()
方法已被阻止,但似乎已经实施并合并了一个补丁程序:https://github.com/symfony/symfony/pull/10420
编辑:如果您不想使用库,则可以使用popen()
,pclose()
和Windows工具start
的组合:
pclose(popen('start /B curl --data "'.$data.'" '.$url, 'r'));
这会在不打开窗口的情况下在后台运行程序并立即返回。
编辑2:带有start /B
的技巧的来源:http://php.net/manual/en/function.exec.php#86329