PHP实现带重试功能的curl连接示例


Posted in PHP onJuly 28, 2016

本文实例讲述了PHP实现带重试功能的curl连接方法。分享给大家供大家参考,具体如下:

/**
 * @param string  $url 访问链接
 * @param string $target 需要重试的标准: 返回结果中是否包含$target字符串
 * @param int $retry 重试次数, 默认3次
 * @param int $sleep 重试间隔时间, 默认1s
 * @return bool|mixed curl返回结果
 * desc 有重试功能的curlget
 */
function curlGetRetry($url, $target, $retry=3, $sleep = 1)
{
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 检查证书中是否设置域名(为0也可以,就是连域名存在与否都不验证了)
  $output = curl_exec($ch);
  while((strpos($jsonOutput, $target) === FALSE) && $retry--){ //检查$targe是否存在
    sleep($sleep); //阻塞1s
    $output = curl_exec($ch);
  }
  curl_close($ch);
  return $output;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
php遍历数组的4种方法总结
Jul 05 PHP
php mb_substr()函数截取中文字符串应用示例
Jul 29 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
php实现的任意进制互转类分享
Jul 07 PHP
zen_cart实现支付前生成订单的方法
May 06 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
ThinkPHP 3使用OSS的方法
Jul 19 PHP
PHP如何防止用户重复提交表单
Dec 09 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 #PHP
php倒计时出现-0情况的解决方法
Jul 28 #PHP
24条货真价实的PHP代码优化技巧
Jul 28 #PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 #PHP
php字符串操作针对负值的判断分析
Jul 28 #PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 #PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
Jul 28 #PHP
You might like
一个用于网络的工具函数库
2006/10/09 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
玩转方法:call和apply
2014/05/08 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
Python中字符编码简介、方法及使用建议
2015/01/08 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python创建字典的八种方式
2019/02/27 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
python单例设计模式实现解析
2020/01/07 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
出国留学介绍信
2014/01/13 职场文书
班长竞选演讲稿
2014/04/24 职场文书
文化建设工作方案
2014/05/12 职场文书
医学求职信
2014/05/28 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
分家协议书范本
2016/03/22 职场文书
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript