PHP Curl 异步响应

2024-02-20

我有一个 PHP 文件,它通过curl 调用另一个PHP 文件。我试图让第二个文件向第一个文件发送响应,让它知道它已启动。问题是第一个不能等待第一个完成执行,因为这可能需要一分钟或更长时间,我需要它立即发送响应,然后继续处理常规业务。我尝试在第二个文件的顶部使用回显,但第一个文件没有得到响应。 如何在未完成执行的情况下发回响应?

文件1.php

<?php
$url = 'file2.php';
$params = array('data'=>$data,'moredata'=>$moredata);

$options = array(
    CURLOPT_RETURNTRANSFER => true,     // return web page
    CURLOPT_HEADER         => false,    // don't return headers
    CURLOPT_FOLLOWLOCATION => true,     // follow redirects
    CURLOPT_ENCODING       => "",       // handle all encodings
    CURLOPT_USERAGENT      => "Mozilla", // who am i
    CURLOPT_AUTOREFERER    => true,     // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
    CURLOPT_TIMEOUT        => 120,      // timeout on response
    CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
    CURLOPT_TIMEOUT        => 10,        // don't wait too long
    CURLOPT_POST           => true,     // Use Method POST (not GET)
    CURLOPT_POSTFIELDS     => http_build_query($params)
);
$ch = curl_init($url);

curl_setopt_array( $ch, $options );
$response = curl_exec($ch); // See that the page started.
curl_close($ch);
echo  'Response: ' . $response;
?>

文件2.php

<?php
/* This is the top of the file. */
echo 'I started.';
.
.
.
// Other CODE
.
.
.
?>

当我运行 file1.php 时,结果是:“响应:”,但我希望它是“响应:我开始了”。我知道 file2.php 启动是因为“其他代码”被执行,但是 echo 没有发送回 file1.php,为什么?


这可能正是您正在寻找的。 PHP 中的分叉:

http://framework.zend.com/manual/en/zendx.console.process.unix.overview.html http://framework.zend.com/manual/en/zendx.console.process.unix.overview.html

一个进程一分为二。一个是另一个的父亲。父亲可以告诉客户他刚刚开始,孩子可以完成这项工作。当孩子完成后,他可以向父亲报告,父亲也可以向客户报告。

请记住,要运行它有很多要求:

  • Linux
  • CLI 或 CGI 界面
  • shmop、pcntl 和 posix 扩展(需要重新编译)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP Curl 异步响应 的相关文章

  • Laravel 意外错误“类用户包含 3 个抽象方法...”

    在 Laravel 上编写我的身份验证应用程序时 我遇到了一个以前从未见过的错误 我已经集思广益了近一个小时来解决这个问题的原因 但仍然找不到解决方案 Error User 类包含 3 个抽象方法 因此必须声明为抽象方法或实现其余方法 Il
  • 从关系中合并 Laravel 中的集合

    假设我有 3 张桌子 Images Subject Style 关系是多对多 图像 主题 和多对多 图像 样式 现在我想做一些类似的事情 result subjectResult gt images gt merge styleResult
  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • 如何使用 PHP 从内容中查找 URL?

    需要一个简单的 preg match 它将在内容中查找 c aspx 不带引号 如果找到 它将返回整个 url 举个例子 content div 4 a href m c aspx mt 01 9310ba801f1255e02e411d8
  • 当用户再次访问同一页面时保持登录状态?

    目前我正在使用会话来登录用户 但是当我关闭浏览器并再次打开它时 我必须再次登录 你如何让用户在 2 周内保持登录状态 那么是通过cookie吗 那么您想要 在这台计算机上记住我 选项吗 这是一种与语言无关的方法 创建一个至少包含以下内容的数
  • cakephp 1.1 与 php 5.3

    我刚刚从 php 5 1 升级到 5 3 之前在我的服务器上使用 cakephp 1 1 自从升级 或者可能更早 我不确定 以来 我收到以下错误 任何人都可以透露一些信息 Deprecated Assigning the return va
  • PHP服务器端IAB验证openssl_verify总是返回0

    我使用以下函数 服务器端 php 来验证 IAB v3 事务 我从 Android 应用程序传递过来 Override protected void onActivityResult int requestCode int resultCo
  • ajax 会增加还是降低安全性?

    我正在创建一个网站 到目前为止它是纯 PHP 的 我在想 既然很少有人没有启用 JavaScript 我想知道为什么 也许我应该将我的网站创建为一个完全 PHP 的网站 而不使用任何 AJAX 难道是我想错了 可以肯定的是 如果我实施一些
  • 获取目录中最后修改的文件

    有没有办法只选择目录中的最后一个文件 扩展名jpg png gif 或者我是否必须解析整个目录并使用进行检查filemtime 是的 你必须通读它们 但由于目录访问已被缓存 因此您不必真正担心它 files array merge glob
  • .htaccess 在动态文件夹名称中加载索引

    我在 htaccess 加载动态文件夹名称中的索引时遇到问题 这是我的目录结构 root products gt this is constant folder name 而不是使用 GET 获取产品 url root products i
  • 仅在 Chrome 上我收到此错误:Uncaught TypeError: Illegal constructor [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 当我在 Chrome 上加载 jQuery 时 我会收到此错误 Uncaught TypeError Illegal constr
  • Magento 设置脚本中的 ALTER TABLE 不使用 SQL

    乔纳森 戴 https stackoverflow com users 336905 jonathan day says 更新不应采用以下形式 SQL命令 我没遇到过 任何 DDL 或 DML 语句不能 通过 Magento 的配置执行 结
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区
  • 在 Windows 上查看 PHP 文件夹

    我正在编写一个简单的 PHP 脚本来监视文件夹及其子文件夹的任何更改 新文件 修改 删除 然后执行操作 我将使用 Windows 上的命令行运行此脚本php f script php 我一直在寻找一种在 Windows 上观看具有 PHP
  • PHPunit - 错误

    当 PHPunit 框架不希望发生的错误发生时 测试会停止 PHP 会抛出错误 但 PHPunit 不会记录这是一个错误 我如何确保 PHPunit 将其记录为错误 免责声明 我是 PHPUnit 的新手 我也试图弄清楚 发生错误时会发生什
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • PHP 文件上传帮助

    div align center div 这是我的代码
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam

随机推荐

  • Golang 中 logrus 的 CustomFormatter 显示文件名和行号

    我在用github com sirupsen logrus用于登录我的 golang 脚本 但是我想获取记录消息的文件名和行号 我可以使用下面的代码得到它 package main import fmt os runtime strings
  • Monodevelop 2.8、XCode 3.2.6、界面生成器:出口和操作

    编辑 由于我还没有安装 XCode 4 我想知道 MD 2 8 是否与 XCode 3 2 6 完全兼容 特别是 我是否能够将插座和操作与中描述的新过程连接起来机器翻译文档 http docs xamarin com ios tutoria
  • 如何在 swift 3+ 中调整键盘的滚动视图

    如何调整滚动视图以垂直补偿键盘 继续阅读 是的 我知道这是一些基本信息 但今天我随机注意到 我看到的关于这个主题的所有答案都充满了信息 版本和 或到处使用刘海 但对于 Swift 来说没有什么可靠的3 斯威夫特 4 2 代替滚动视图对于 U
  • Android ExpandableListView:单击时设置所选项目的背景颜色

    当用户单击我的子项目时 我试图为项目设置背景颜色expandableListView 这是代码 expListView setOnChildClickListener new OnChildClickListener Override pu
  • 在 FluentValidation 中覆盖默认 ASP.NET MVC 消息

    我收到验证消息 值 xxx 对于 yyy 无效 当我为双精度类型发布错误的值时 就会发生这种情况 我不知道如何改变它 不幸的是 FluentValidation 无法覆盖这一点 MVC 验证的可扩展性模型在许多地方都受到一定限制 而且我无法
  • iOS - 通过渲染从 UIView 生成 PDF 会降低质量

    我使用以下方法从 UIView 生成 PDF 它们都创建了 PDF 但质量下降了 方法一 implementation UIView PDFWritingAdditions void renderInPDFFile NSString pat
  • 如何在validationif装饰器nestjs类验证器中使用else条件?

    我需要有条件地验证在 Nestjs 类验证器中提交的输入 有一个 validateif 装饰器 但如何在 else 部分添加另一个验证 例如 如果第一个输入是电子邮件 则使用电子邮件装饰器 如果它是电话 则与我的正则表达式匹配 IsNotE
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • JavaFx:组合框表格单元格双击

    问题如下 我有一个TableView with ComboBoxes对于每个 TableCell 我可以选择 组合框中的值 问题是 如果我有很多行和列 我必须多次单击才能在每个组合框中选择适当的值 要在组合框中选择一个值 我必须单击四次才能
  • JDK5/JDK 6 将 String 转换为 Date 时有什么区别

    JDK 5 是否可以生成 default message Failed to convert property value of type java lang String to required type java util Date f
  • VIEW 中的 ORDER BY 返回不同结果的 SQL

    这是我的观点 CREATE VIEW STD USER view TransInvoice AS SELECT TOP 999999 Customernr Referensnr 2 as a InvoiceRowData FileHead
  • wxPython 因分段错误而崩溃

    我很困惑为什么我的应用程序因分段错误而崩溃 我有一个使用 wxPython 作为前端的 python 应用程序 我的应用程序因分段错误而随机崩溃 我知道它必须是 wxPython 因为我有相同代码的控制台版本 并且它不会崩溃 前端是一个只读
  • Docker 容器中卷的权限错误

    我通过本地 docker machine VM 在 OSX 10 11 中运行 Docker 1 8 1 我有以下 docker compose yml web build docker web ports 80 80 8080 8080
  • 在 Monotouch 中编译 lambda 并调用设备上的委托

    我目前正在 MonoTouch 中移植 NET 代码库 并且目前正在研究一种接收Expression
  • 为什么我的“计数前导零”程序出现故障?

    以下代码返回 Hacker s Delight 书中的前导零的数量 include
  • 当我重命名项目时,Xcode 6.3 崩溃

    昨天我将 Xcode 更新到 6 3 版本 因为我的 iPhone 具有 8 3 软件版本 并且 Xcode 想要最新版本来运行该应用程序 现在一切都已更新 但 Xcode 无法再重命名该项目了 如果我复制该项目 然后打开它并在 身份 和
  • 如何将我的编译器与 eclipse 集成?

    我有一个使用 flex bison 和 C 编写的迷你编译器 我想在 eclipse 中使用它 就像使用java编译器一样 但我不知道如何做到这一点 所以我需要一些帮助和一些建议 Thanks 创建商业品质的 Eclipse IDE htt
  • 无法启动 net 6 + React 应用程序的 SPA 代理

    我正在创建一个基于 ASP NET CORE Web 应用程序 React 模板的新项目 然后我根据需要配置 ClientApp 我使用自己的 webpack config js 而不是 CRA 前端工作正常 当我运行它时它按预期启动npm
  • jQuery 启用/禁用显示/隐藏按钮和选择选项。获取剩余选项值

    我有一个使用文本字段中的值填充的选择列表 我还有两个按钮 一个添加按钮 用于将输入的值添加到选择列表中 一个删除按钮 用于从选择列表中删除输入的值 我想使用 jQuery 执行以下操作 如果在文本字段中输入的值为无法使用在选择列表中 显示添
  • PHP Curl 异步响应

    我有一个 PHP 文件 它通过curl 调用另一个PHP 文件 我试图让第二个文件向第一个文件发送响应 让它知道它已启动 问题是第一个不能等待第一个完成执行 因为这可能需要一分钟或更长时间 我需要它立即发送响应 然后继续处理常规业务 我尝试