gpt4 book ai didi

php - WINDOWS系统下从php页面异步执行php脚本

转载 作者:可可西里 更新时间:2023-11-01 10:21:50 26 4
gpt4 key购买 nike

我已经搜索了几个类似的问题,但没有找到适合我的答案,尤其是 Windows 系统。我已经在 Windows 机器上安装了 PHP 和 Apache。我有一个调用 Page1.php 的应用程序。在 Page1 中,我执行了一些代码,并且在特定点我想启动另一个 php 脚本,让我们异步调用它 Script.php。我不需要将任何参数传递给第二个脚本 - 如果可以的话它可能会有帮助但它不是强制性的 - 我不需要等待脚本完成因为我不想保留与用户的沟通,因为脚本对文件进行了大量操作,并且可以持续很长时间。我已经看到并尝试过基于 exec、popen、shell、系统等的答案......但我还没有找到适合我的答案,也许是因为我在 Windows 上工作。这些已经成为我的一些解决方案尝试过但没有成功:

exec('php script.php &> /dev/null &');
shell_exec('php script.php &> /dev/null &');
system('php script.php &> /dev/null &');
php script.php &> /dev/null &`

架构大致如下:

PAGE1.PHP

<?php
echo "Hello World";
echo "\n";
....
if ($var>$var2) {
HERE CALL SCRIPT.PHP ASYNC
}
...
?>

脚本.php

<?php
...
...
?>

最佳答案

复制自 php.net 对 exec's page 的评论:

This will execute $cmd in the background (no cmd window) without PHP waiting for it to finish, on both Windows and Unix.

<?php 
function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}
?>

这个我自己没有测试过,但是和我想的方向差不多。你也可以看看this有关更多详细信息的 stackoverflow 问题(可能有帮助)。

关于php - WINDOWS系统下从php页面异步执行php脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26876728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com