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)
Oct 09 PHP
文件上传的实现
Oct 09 PHP
php auth_http类库进行身份效验
Mar 19 PHP
php购物车实现代码
Oct 10 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
php session的锁和并发
Jan 22 PHP
Yii实现显示静态页的方法
Apr 25 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP开发实现微信退款功能示例
Nov 25 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
php常用ODBC函数集(详细)
2013/06/24 PHP
php实现的操作excel类详解
2016/01/15 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
javascript实现数独解法
2015/03/14 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
JS防抖和节流实例解析
2019/09/24 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python实现简单多线程任务队列
2016/02/27 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
Python微信操控itchat的方法
2019/05/31 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
Pycharm调试程序技巧小结
2020/08/08 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
电大毕业生自我鉴定
2013/11/10 职场文书
2014年小学德育工作总结
2014/12/05 职场文书