【问题标题】:Fastest way to Fire and Forget a JSON POST in PHP在 PHP 中触发和忘记 JSON POST 的最快方法
【发布时间】:2012-08-31 00:53:05
【问题描述】:

我目前正在为我正在使用的 PHP 网站构建/实施日志系统。日志系统的工作方式是我向 localhost 发送一个 JSON 请求,然后该 json 被记录(基本上,无论如何。

我的问题是:

使用 JSON POST 快速启动并忘记调用的最快方法是什么?有没有办法用 cURL 触发并忘记?

【问题讨论】:

  • 如果您只是想记录页面请求,为什么不使用原始网络服务器日志文件或 Google Analytics 之类的东西?
  • 我不只是记录页面请求。我正在做应用程序日志记录。

标签: php json curl


【解决方案1】:

有多种方法可以做到这一点:您可以使用 php_curl 扩展的 curl_multi 功能,它允许您使用 cURL 发送异步 HTTP 请求,但这需要该扩展。 GuzzlePHP 为 cURL 的大部分功能提供了一个大型包装,如果您正在寻找面向对象的方法,包括 curl_multi 功能。

PHP 的套接字还支持异步通信,这是一个实现此功能的库HTTP 协议可用here [客户端用“纯”PHP 编写,不依赖 cURL,但支持异步请求,完全符合 HTTP 1.1 规范]。

【讨论】:

  • 另一种选择是使用非阻塞system() 调用,该调用调用命令行 cURL 程序或 wget。
【解决方案2】:

如果您正在寻找火灾而忘记日志记录解决方案,您可能需要查看使用 UDP 协议的东西,例如 Graylog。

【讨论】:

    【解决方案3】:

    您可以使用点击 PHP 脚本的小图像。 php 脚本记录点击并返回一个微小的 1x1 透明 GIF。然后在页面加载后进行日志记录。

    【讨论】:

    • 这意味着客户端执行任务,而不是 PHP。这也使得传输要记录的数据变得困难。这种方法不可靠。
    • 我以为你只是想记录页面点击。
    • 假设总是危险的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2018-07-27
    • 2022-01-13
    相关资源
    最近更新 更多