使用exec,如何更改您';再执行官;与


Using exec, how do you change the PHP version you're exec'ing with?

初始脚本.php

exec("start /B php file.php >> log-file.log");

file.php

<?php die(phpversion()); ?>

日志文件.log

5.5.11

我在程序文件(x86(中安装了3个php:

  • v5.4
  • v5.5
  • v.5.5

我想强制exec使用v5.4,这可能吗?

我尝试过对c:/Program Files(x86(/PHP/v5.4/PHP.exe文件的不同变体,但都没有成功,通常脚本只是挂起。最后一点,我在Windows2008服务器上,所以nix命令无效…:/

正如Dagon所指出的,需要定义路径。但是,在Windows中,需要使用双引号将路径用空格括起来。我也无法运行最初发布的带有start/B的脚本。我现在也在使用popen。这是工作代码:

pclose(popen('"C:'/Program Files (x86)'/PHP'/v5.4'/php" file.php var1 var2 >> log-file.log 2>&1 &', "r"));

您还会看到我逃脱了斜杠,因此获得了'/

感谢您的帮助,SO。