如何在不等待结果的情况下在PHP中调用file_get_contents()?

时间:2018-08-28 07:10:47

标签: php file-get-contents

在某些PHP脚本中,我正在使用以下代码将POST数据发送到URL:

$file = @file_get_contents();

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

通常,PHP将等待直到执行完毕。

是否有一种无需等待结果即可调用$file=@file_get_contents();的方法?只需调用它并执行下一条命令即可,而无需担心$file=@file_get_contents();

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

from itertools import chain wordlist = ['change', 'my', 'diaper', 'please'] mylist = [('verb', 'change'), ('prep', 'my')] veto = set(chain(*mylist)) # {'prep', 'change', 'verb', 'my'} print([word for word in wordlist if word not in veto]) # ['diaper', 'please'] 确实无法使用此功能。但是您可以使用file_get_contents对此进行存档。

答案 2 :(得分:1)

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

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

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