php之curl设置超时实例


Posted in PHP onNovember 03, 2014

本文实例讲述了php中curl超时设置方法。分享给大家供大家参考。具体实现方法如下:

访问HTTP方式很多,可以使用curl, socket, file_get_contents() 等方法。
在访问http时,需要考虑超时的问题。

CURL访问HTTP:

CURL 是常用的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。 
curl_setopt($ch, opt) 可以设置一些超时的设置,主要包括:   
① (重要) CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数。     
② (重要) CURLOPT_TIMEOUT_MS 设置cURL允许执行的最长毫秒数。   
(在cURL 7.16.2中被加入。从PHP 5.2.3起可使用)
③  CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。
④ CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。  (在cURL 7.16.2中被加入。从PHP 5.2.3开始可用) 
⑤ CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。
 
1. curl普通秒级超时:

$ch = curl_init();      

 curl_setopt($ch, CURLOPT_URL,$url);       

 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);       

 curl_setopt($ch, CURLOPT_TIMEOUT,60);   //只需要设置一个秒的数量就可以  

 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);       

 curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);

2. curl普通秒级超时使用:

curl_setopt($ch, CURLOPT_TIMEOUT,60);
 

3. curl如果需要进行毫秒超时,需要增加:

curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1L);      

 //或者      

 curl_setopt ( $ch,  CURLOPT_NOSIGNAL,true);//支持毫秒级别超时设置

 
希望本文所述对大家的PHP程序设计有所帮助。
PHP 相关文章推荐
PHP实现采集程序原理和简单示例代码
Mar 18 PHP
CodeIgniter php mvc框架 中国网站
May 26 PHP
PHP网站基础优化方法小结
Sep 29 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
php pdo连接数据库操作示例
Nov 18 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 #PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 #PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 #PHP
php防止sql注入之过滤分页参数实例
Nov 03 #PHP
详解PHP导入导出CSV文件
Nov 03 #PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 #PHP
php过滤表单提交的html等危险代码
Nov 03 #PHP
You might like
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
javascript实现前端分页功能
2020/11/26 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python刷投票的脚本实现代码
2014/11/08 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
详解Python_shutil模块
2019/03/15 Python
详解python数据结构和算法
2019/04/18 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
阿里云:Aliyun.com
2017/02/15 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
商场经理竞聘演讲稿
2014/01/01 职场文书
餐饮投资计划书
2014/04/25 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
Mysql MVCC机制原理详解
2021/04/20 MySQL
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS