在后台运行PHP脚本

利奥波德·乔伊

我有两个PHP脚本-我们将它们分别称为脚本A和脚本B。当用户进行某些交互时,脚本A开始运行。脚本A需要在后台运行脚本B,因此在脚本B仍在运行时返回脚本A的结果。我可以在脚本A:中执行此操作exec('scriptB.php &'),但是由于我位于共享主机上,因此exec是不允许的。另外,由于必须运行脚本B,因此Ajax解决方案(在客户端上启动两个脚本)将无法工作-我不能让用户恶意停止脚本的运行。

是否有不涉及使用shell命令或Ajax的解决方案?

提前致谢!

利奥波德·乔伊

我最终使用了这种方法:http : //w-shadow.com/blog/2007/10/16/how-to-run-a-php-script-in-the-background/

function backgroundPost($url){
    $parts=parse_url($url);
    $fp = fsockopen($parts['host'], 
        isset($parts['port'])?$parts['port']:80, 
        $errno, $errstr, 30);
    if (!$fp) {
        return false;
    } else {
        $out = "POST ".$parts['path']." HTTP/1.1\r\n";
        $out.= "Host: ".$parts['host']."\r\n";
        $out.= "Content-Type: application/x-www-form-urlencoded\r\n";
        $out.= "Content-Length: ".strlen($parts['query'])."\r\n";
        $out.= "Connection: Close\r\n\r\n";
        if (isset($parts['query'])) $out.= $parts['query'];
        fwrite($fp, $out);
        fclose($fp);
        return true;
    }
}

//Example of use
backgroundPost('http://example.com/slow.php?file='.urlencode('some file.dat'));

瑞秋(Rachael),谢谢您的帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在后台运行php脚本

来自分类Dev

从PHP在后台运行Shell脚本

来自分类Dev

在后台运行Shell脚本

来自分类Dev

在后台运行鱼脚本?

来自分类Dev

在后台运行 Python 脚本

来自分类Dev

从浏览器启动/停止在后台运行的php脚本

来自分类Dev

调用脚本并在PHP中继续在后台运行它?

来自分类Dev

调用脚本并在PHP中继续在后台运行它?

来自分类Dev

PHP:如何在后台运行批处理脚本[Windows]

来自分类Dev

在后台运行 php 脚本,永远不会死 linux

来自分类Dev

在后台运行php代码

来自分类Dev

在后台运行Heredoc格式的脚本?

来自分类Dev

在后台运行特定的Django脚本

来自分类Dev

在后台脚本中运行busybox netcat?

来自分类Dev

udev脚本不在后台运行

来自分类Dev

杀死在后台运行的Shell脚本

来自分类Dev

在后台运行管道bash脚本

来自分类Dev

终止在后台运行的bash shell脚本

来自分类Dev

如何在后台运行Perl脚本

来自分类Dev

在后台运行Bash脚本并退出终端

来自分类Dev

在后台运行特定的Django脚本

来自分类Dev

如何在后台运行shell脚本?

来自分类Dev

如何在后台运行Bash脚本

来自分类Dev

通过 Intune 在后台运行 Powershell 脚本

来自分类Dev

使用系统命令并在后台运行的php脚本-它将仍然按顺序运行吗?

来自分类Dev

获取在后台运行的php文件的输出

来自分类Dev

在Shell脚本中在后台运行gnuplot脚本

来自分类Dev

杀死在后台运行的Python脚本的最小复杂方法

来自分类Dev

从UNIX sh脚本在后台运行进程