我的项目需要使用if-else条件运行的3个php脚本。第一个脚本将加载到站点的索引页面上,以检查是否设置了条件,如果是,则会调用第二个脚本。第二个脚本检查是否设置了其他条件,如果一切正常,它最终会调用最后一个脚本。php shell_exec()帮助需要在后台运行脚本
现在我可以通过将脚本包含在if语句中来做到这一点,但由于最终结果是资源占用MySQL转储,我需要它独立于原始触发器页面运行。
此外,无论索引页面上的用户操作如何,这些脚本都应该在触发后继续执行其操作。
最后一件事:它应该能够在win和nix上运行。
你会如何做到这一点?
以下代码是否有意义?
if ($blah != $blah-size){
shell_exec ('php first-script.php > /dev/null 2>/dev/null &');
}
//If the size matches, die
else {
}
非常感谢。
更新:以防万一其他人正在经历同样的交易。 在将脚本作为CGI运行时,php似乎存在一个错误,但Apache中的命令行可以与我测试过的所有版本一起工作。
看到错误https://bugs.php.net/bug.php?id=11430
所以不是我所说的脚本是这样的:
exec("php-cli mybigfile.php > /dev/null 2>/dev/null &");
或者你可以把它作为外壳。它适用于nix系统,但我的本地窗口是绝望的,所以如果有人在Windows上运行它,它的工作原理,请更新。
创建另一个脚本工作者,由cron/windows调度器运行 – zerkms 2012-03-29 20:53:06
这个的全部重点是不使用cron并且被用户触发。:) – Chris81 2012-03-30 14:31:03