前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 发起并发请求

PHP 发起并发请求

作者头像
seth-shi
发布2023-12-18 14:51:43
790
发布2023-12-18 14:51:43
举报
文章被收录于专栏:seth-shi的专栏seth-shi的专栏

PHP 一直以来都是以页面级别的生存方式直接, 上一次请求和下一次的变量无法公用 (不像常驻内存语言)

官方并发请求 demo

代码语言:javascript
复制
<?php
require __DIR__ . '/../vendor/autoload.php';

use Curl\MultiCurl;

$urls = array(
    'tag3' => 'https://httpbin.org/post',
    'tag4' => 'https://httpbin.org/get',
    'tag5' => 'https://httpbin.org/html',
);

$multi_curl = new MultiCurl();


$data = [];

$multi_curl->success(function ($instance) {
    echo 'call to ' . $instance->id . ' with "' . $instance->myTag . '" was successful.' . "\n";
});
$multi_curl->error(function ($instance) {
    echo 'call to ' . $instance->id . ' with "' . $instance->myTag . '" was unsuccessful.' . "\n";
});
$multi_curl->complete(function ($instance) use (&$data) {
    echo 'call to ' . $instance->id . ' with "' . $instance->myTag . '" completed.' . "\n";
    $data[] = $instance->tag;
});

foreach ($urls as $tag => $url) {
    $instance = $multi_curl->addGet($url);
    $instance->myTag = $tag;
}

// wait all request completed
$multi_curl->start();

// tag 的顺序并不是一定的, 取决于 http 请求哪个先返回
var_dump($data);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档