Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中调用file_get_contents(),而不等待结果?_Php_File Get Contents - Fatal编程技术网

如何在PHP中调用file_get_contents(),而不等待结果?

如何在PHP中调用file_get_contents(),而不等待结果?,php,file-get-contents,Php,File Get Contents,在我的一些PHP脚本中,我使用以下代码将数据发布到URL: $file = @file_get_contents(); 这将只发布数据,服务器返回的内容为空。执行的脚本实际上并不重要,并且不需要执行主脚本。它就像一个日志文件 通常情况下,PHP将等待,直到准备好执行为止 有没有办法调用$file=@file\u get\u contents()而不等待结果?只需调用它并执行下一个命令,而不必考虑$file=@file\u get\u contents() 我已经搜索了这个问题,但只找到了控制台

在我的一些PHP脚本中,我使用以下代码
将数据发布到URL:

$file = @file_get_contents();
这将只发布数据,服务器返回的内容为空。执行的脚本实际上并不重要,并且不需要执行主脚本。它就像一个日志文件

通常情况下,PHP将等待,直到准备好执行为止

有没有办法调用
$file=@file\u get\u contents()而不等待结果?只需调用它并执行下一个命令,而不必考虑
$file=@file\u get\u contents()


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

file\u get\u contents是一种同步方法,因此您不能跳过它,但如果该方法不重要,使用PHP的解决方案是创建一个线程并将其放入日志逻辑方法,通过这种方式,您可以在请求实际被处理的地方运行进程(进程/线程),同时线程记录您正在做的任何事情。

此功能与
文件获取内容一起使用
实际上不可能。但是您可以使用
fsockopen
将其存档。

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

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

你到底想实现什么?也许你想要像老太婆一样的东西。。。!!?第二个答案是什么?如果你不想使用CronJobs,那么创建线程是一种方法,但它们很棘手。您也可以使用RabbitMQ之类的消息代理来执行此操作。如果您最后一次执行此操作,您可以关闭连接:这里有一个简单的fire and forget POST函数,因此它不会等待gr8gonzo 2012-07-18创建的响应: