php之curl设置超时实例

yipeiwu_com7年前PHP代码库

本文实例讲述了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编程快速实现数组去重的方法。分享给大家供大家参考,具体如下: 概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一...

PHP命名空间与自动加载机制的基础介绍

前言 include 和 require 是PHP中引入文件的两个基本方法。在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 incl...

php可变长参数处理函数详解

本文实例讲述了php可变长参数处理函数。分享给大家供大家参考,具体如下: 与C++一样,PHP中也可以对含有可变参数的函数进行处理,道理都一样,需要函数来专门处理参数列表。PHP中提供了...

php ss7.5的数据调用 (笔记)

php ss7.5的数据调用 (笔记)

这几天搞 ss7.5 dz7.2 uc1.5 uchome2.0和自己主站的整合 头都大了 呵呵  好歹是弄的差不多 了 呵呵 记录一下 ss7.5的数据调用  ...

PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]

substr --- 取得部份字符串 语法 : string substr (string string, int start [, int length]) 说明 : substr(...