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 var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
phalcon框架使用指南
Feb 23 PHP
解读PHP中上传文件的处理问题
May 29 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
php常用正则函数实例小结
Dec 29 PHP
Laravel框架验证码类用法实例分析
Sep 11 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 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中使用Oracle数据库(2)
2006/10/09 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
基于jquery的模态div层弹出效果
2010/08/21 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python程序需要编译吗
2020/06/19 Python
python如何删除文件、目录
2020/06/23 Python
Python如何将字符串转换为日期
2020/07/31 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
详解python对象之间的交互
2020/09/29 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
公司领导推荐信
2013/11/12 职场文书
体育老师的教学自我评价分享
2013/11/19 职场文书
高中语文课后反思
2014/04/27 职场文书
公司年终奖分配方案
2014/06/16 职场文书
运动会表扬稿
2015/01/16 职场文书
节水宣传标语口号
2015/12/26 职场文书
关于的python五子棋的算法
2022/05/02 Python
Python测试框架pytest高阶用法全面详解
2022/06/01 Python