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+javascript的日历控件
Nov 19 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
深入解析php之sphinx
May 15 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
PHP开发实现快递查询功能详解
Apr 08 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学习笔记 数组的常用函数
2011/06/13 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
joomla数据库操作示例代码
2016/01/06 PHP
PHP xpath()函数讲解
2019/02/11 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
python中requests库session对象的妙用详解
2017/10/30 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
几道PHP面试题
2013/04/14 面试题
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
道歉信怎么写
2015/05/12 职场文书
学习计划是什么
2019/04/30 职场文书