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
一个SQL管理员的web接口
Oct 09 PHP
php 8小时时间差的解决方法小结
Dec 22 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
php开启openssl的方法
May 15 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
Thinkphp开发--集成极光推送
Sep 15 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与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
JavaScript学习历程和心得小结
2010/08/16 Javascript
js的写法基础分析
2011/01/17 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python实现人人网登录示例分享
2014/01/19 Python
python实现保存网页到本地示例
2014/03/16 Python
python实现探测socket和web服务示例
2014/03/28 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
大专毕业生自我鉴定
2013/11/21 职场文书
出纳员岗位职责
2014/03/13 职场文书
网站创业计划书
2014/04/30 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
一年级小学生评语大全
2014/12/25 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫
python高温预警数据获取实例
2022/07/23 Python