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 相关文章推荐
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
php自定义apk安装包实例
Oct 20 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
php类常量用法实例分析
Jul 09 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
php下使用SMTP发邮件的代码
2008/01/10 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
JavaScript操作class和style样式代码详解
2016/02/13 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
python类装饰器用法实例
2015/06/04 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
python操作mysql代码总结
2018/06/01 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python tkinter实现屏保程序
2019/07/30 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
Django 解决由save方法引发的错误
2020/05/21 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
四风存在的原因分析
2014/02/11 职场文书
爱心捐款倡议书
2014/04/14 职场文书
安全例会汇报材料
2014/08/23 职场文书
研修心得体会
2014/09/04 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript