返回首页 2017-12

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

2017-12-15 04:29:41 评论: 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来实现。

更多

加班杂谈

2017-12-05 11:45:44 评论: 0

  最近加班搞团购的事情,实在是让人心烦,大众点评新开放的北极星平台,文档写的烂得跟屎一样,复制粘贴都不改的,有句妈卖皮不知当讲不当讲。

  晚上杨老大过来搞支付宝接口,我就留下来加班了,今天的地铁是坐不上了,等会儿叫车吧,哎。这3个月的工作,让我有了半年多的经验,很充实,也成长了很多。很庆幸转行第一份工作能在简立方上班,上班环境氛围都很不错。

  人一到夜晚就会变得很感性,思维也会比较活跃,思考得比较多,当然,是指如果没其他得事儿得话。

  到了这个年纪,已经懂得了生活的不容易,理解了以前不理解得很多事,也学会了去如何处理遇到的问题,压力,也是是自己给自己的。小的时候总是觉得以后对自己很遥远,很多事情很多人都不懂得珍惜,等到现在回忆起,才发现已经抓不住了。父母发间的雪白,爷爷奶奶外公外婆佝偻的身影无不时刻提醒着自己要珍惜现在的一切,时光一去不复回。

  到了这个年纪,父母最关心的就算自己的感情问题,总是催着我找女朋友。先成家还是先立业?一代人有一代人的看法。而我,一直都想找个中意的妹子,左手代码右手勺,能有个她让我可以好好照顾,能欣赏夸奖我做的美味,能够的寒冬的冬夜,加班回家的路上让我知道有个人在等我。人的一生,就是在追求自己的幸福中度过,也总是看不到什么时候才是尽头。

  到了这个年纪,越来越觉得爱情的珍贵,越来越觉得爱情对自己差不多是奢望了。年少时候机会很多,却怎么都抓不住,现在回想也全都是遗憾。曾今喜欢的人,如今已经快要嫁做人妇,曾经说的分手还是朋友,不过是给自己留个念想,以前的畏畏缩缩终究让感情就这样了。

  到了这个年纪,依然学不会别人的老成,依然喜怒形于色,依然做不了别人眼中会交际的人,依然还是父母眼中长不大的孩子。

  1点半了,准备下班了。------2017-12-05 01:35

更多

PHP curl 简单的使用方法

2017-12-03 00:28:28 评论: 0

curl 简单的使用方法

  cURL可以使用URL的语法模拟浏览器来传输数据,因为它是模拟浏览器,因此它同样支持多种协议。   使用cURL完成简单的请求主要分为以下四步:

  • 初始化,创建一个新cURL资源
  • 设置URL和相应的选项
  • 抓取URL并把它传递给浏览器
  • 关闭cURL资源,并且释放系统资源
/**
     * curl post
     * */
    public function curlPost($str) {
        $url = str_replace(' ', '+', $str);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, '');
        $header[] = 'Content-type:application/x-www-form-urlencoded';
        curl_setopt($ch, CURLOPT_HEADER, $header);
        // 设置为post
        curl_setopt($ch, CURLOPT_POST, 1);
        $response = curl_exec($ch);
        curl_close($ch);
        $separator = '/\r\n\r\n|\n\n|\r\r/';
        list($http_header, $http_body) = preg_split($separator, $response, 2);

        $http_response = array('header' => $http_header,//肯定有值
            'body'   => $http_body); //可能为空

        return json_decode($http_response['body']);
    }
/**
     * curl get
     * */
    public function curlGet($str) {
        $url = str_replace(' ', '+', $str);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $header[] = 'Content-type:application/x-www-form-urlencoded';
        curl_setopt($ch, CURLOPT_HEADER, $header);
        $response = curl_exec($ch);
        curl_close($ch);
        $separator = '/\r\n\r\n|\n\n|\r\r/';
        list($http_header, $http_body) = preg_split($separator, $response, 2);

        $http_response = array('header' => $http_header,//肯定有值
            'body'   => $http_body); //可能为空

        return json_decode($http_response['body']);
    }

参考链接:http://blog.csdn.net/yanhui_wei/article/details/21530811

更多