fpy5627的博客

  • 关于我
fpy5627个人网站
热爱生活,乐于分享
  1. 首页
  2. PHP
  3. 正文

在PHP中使用curl 实现类似异步处理的功能

2017年12月15日 637点热度 0人点赞 0条评论

  今天在做微信公众号通知的时候,由于某种原因,在返回给微信成功信息的那一步,需要再向微信发送另一个请求,但是不能影响之前返回给微信的请求。如果直接再发起请求,就会使之前的返回信息失败,所以异步发起请求就非常好用了。

 在PHP中我们有的时候其实希望在执行某项操作的时候,同时去执行另外一项操作,这就是异步。PHP里面最简单的异步请求就是利用强大的curl,代码示例如下:

function resyncGet($url)
{
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_TIMEOUT,1);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
function resyncPost($url , $post)
{
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_TIMEOUT,1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

  这段代码的关键是提供了一个Timeout,仅1秒钟,也就是说curl发出请求,无论是否接收到返回的内容,1秒钟之后都会关闭该访问,因此这个函数的执行数据为1.0-1.1秒之间。但对于用户来说,如果是一个需要进行数据处理的应用,1秒中的等待几乎是被忽略的,如果你希望用一段更简单和容易被理解的代码,可以选择curl来实现。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020年1月12日

fpy5627

这个人很懒,什么都没留下

点赞

文章评论

取消回复

COPYRIGHT © 2021 fpy5627.cn. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备18036084号-1