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_Flame(Version:Progress)的原代码
Oct 09 PHP
php基础知识:类与对象(1)
Dec 13 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
Jul 02 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP实现的CURL非阻塞调用类
Jul 26 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
Laravel实现批量更新多条数据
Apr 06 PHP
详解Laravel制作API接口
May 31 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 字符串操作入门教程
2006/12/06 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
自学python的建议和周期预算
2019/01/30 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
办公室驾驶员岗位职责
2013/11/15 职场文书
新闻专业本科生的自我评价分享
2013/11/20 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
七一讲话心得体会
2014/09/05 职场文书
2015年小学开学寄语
2015/02/27 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
入党自传范文2015
2015/06/26 职场文书
详解Redis主从复制实践
2021/05/19 Redis
MySQL RC事务隔离的实现
2022/03/31 MySQL