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初学者头痛的十四个问题
Jul 12 PHP
PHP操作文件方法问答
Mar 16 PHP
php 动态添加记录
Mar 10 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
Jul 29 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
设定php简写功能的方法
Nov 28 PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 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中++i 与 i++ 的区别
2012/08/08 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
python友情链接检查方法
2015/07/08 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python安装gdal的两种方法
2019/10/29 Python
python、Matlab求定积分的实现
2019/11/20 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
毕业自我鉴定
2013/11/05 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
歌唱比赛主持词
2014/03/18 职场文书
锦旗标语大全
2014/06/23 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
党员自我评价范文2015
2015/03/03 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
交通处罚决定书
2015/06/24 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python
Python中re模块的元字符使用小结
2022/04/07 Python