【问题标题】:How to call file_get_contents() in PHP without waiting for result?如何在 PHP 中调用 file_get_contents() 而不等待结果?
【发布时间】:2018-08-28 07:10:46
【问题描述】:

在我的一些 PHP 脚本中,我使用此代码将 POST 数据发送到 URL:

$file = @file_get_contents();

这只会POST数据,服务器返回的内容是空的。执行的脚本实际上并不重要,并且不需要执行的主脚本。它就像一个日志文件。

通常 PHP 会等到它准备好执行。

有没有办法在不等待结果的情况下拨打$file=@file_get_contents();?直接调用它并执行下一个命令,不用理会$file=@file_get_contents();

我已经搜索过这个问题,但只找到了控制台的解决方案。

【问题讨论】:

标签: php file-get-contents


【解决方案1】:

file_get_contents 是一种同步方法,因此您不能跳过它,但如果该方法不重要,则使用 PHP 的解决方案是创建一个线程并将其放入该日志逻辑方法,这样您可以运行实际处理请求的进程(进程/线程),并且“同时”线程记录你正在做的任何事情。 http://php.net/manual/es/class.thread.php

【讨论】:

    【解决方案2】:

    这个功能在file_get_contents 上是不可能的。但是你可以使用fsockopen 来存档。

    【讨论】:

      【解决方案3】:

      您可以将异步代码移动到单独的 PHP 文件中,然后使用 program execution functions 之一执行它。您需要以 PHP 不等待它完成的方式生成程序。例如,在 Unix 上,您可以使用 & 运算符:

      <?php
      shell_exec("php post.php arg1 arg2 arg3 >/dev/null 2>/dev/null &");
      

      这在 Windows 上很棘手,但并非不可能。

      【讨论】:

        猜你喜欢
        • 2012-08-13
        • 1970-01-01
        • 1970-01-01
        • 2018-02-20
        • 2020-06-19
        • 2013-02-21
        • 1970-01-01
        • 2016-05-24
        • 1970-01-01
        相关资源
        最近更新 更多