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 相关文章推荐
基于文本的留言簿
Oct 09 PHP
NT IIS下用ODBC连接数据库
Oct 09 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
php绘制一条弧线的方法
Jan 24 PHP
php上传文件常见问题总结
Feb 03 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 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
中国收音机工业发展史
2021/03/02 无线电
PHP函数eval()介绍和使用示例
2014/08/20 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
.net笔试题
2014/03/03 面试题
求职者应聘的自我评价
2013/10/16 职场文书
机关节能减排实施方案
2014/03/17 职场文书
出生公证委托书
2014/04/03 职场文书
企业环保标语
2014/06/10 职场文书
简易离婚协议书范本
2014/10/24 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技