如何在PHP中调用file_get_contents(),而不等待结果?
在我的一些PHP脚本中,我使用以下代码如何在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() 我已经搜索了这个问题,但只找到了控制台
将数据发布到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创建的响应: