PHP cURL扩展

使用cURL完成简单的请求主要分为以下四步:
     1.初始化,创建一个新cURL资源
     2.设置URL和相应的选项
     3.抓取URL并把它传递给浏览器
     4.关闭cURL资源,并且释放系统资源

首先,本来我们抓取一个网页,使用file_get_contents()函数来获取

$resourse = file_get_contents('http://www.baidu.com');

$resourse = file('http://www.baidu.com');

$resourse = readfile('http://www.baidu.com');

但是,这样我们会发现,没有办法有效地进行错误处理,更没办法进行高难度任务,如:文件上传、处理cookie、表单提交、验证等。

cURL 函数

  • curl_close — 关闭一个cURL会话

    void curl_close ( resource ch)

  • curl_copy_handle — 复制一个cURL句柄和它的所有选项

    resource curl_copy_handle    ( resource $ch   )


  • curl_errno — 返回最后一次的错误号

    int curl_errno ( resource ch)

    如果没有错,则返回0


  • curl_error — 返回一个保护当前会话最近一次错误的字符串

    string curl_error ( resource ch)

  • curl_escape — URL encodes the given string

    string curl_escape    ( resource $ch   , string $str   )

    失败时返回false


  • curl_exec — 执行一个预先定义好的cURL会话

    mixed curl_exec ( resource ch)
    如果失败了,就返回false,注意使用 === false 来判断。如果没有错,则返回‘’。


  • curl_file_create — Create a CURLFile object


  • curl_getinfo — 获取一个cURL连接资源句柄的信息

    string curl_getinfo ( resource ch [, int opt])
    opt参数有很多,是指定返回要查看的数据,CURLINFO_*


  • curl_init — 初始化一个cURL会话

    resource curl_init ( [string url])


  • curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄

    int curl_multi_add_handle    ( resource $mh   , resource $ch   )

    成功时返回0,失败时返回CURLM_XXX之一的错误码。


  • curl_multi_close — 关闭一组cURL句柄

    void curl_multi_close    ( resource $mh   )


  • curl_multi_exec — 运行当前 cURL 句柄的子连接

    int curl_multi_exec    ( resource $mh   , int &$still_running   )

    still_running:一个用来判断操作是否仍在执行的标识的引用。


  • curl_multi_getcontent — 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流

  • curl_multi_info_read — 获取当前解析的cURL的相关传输信息

  • curl_multi_init — 返回一个新cURL批处理句柄

    resource curl_multi_init    ( void   )

    失败返回false


  • curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源

    int curl_multi_remove_handle    ( resource $mh   , resource $ch   )


  • curl_multi_select — 等待所有cURL批处理中的活动连接

    int curl_multi_select    ( resource $mh   [, float $timeout = 1.0  ] )


  • curl_multi_setopt — Set an option for the cURL multi handle

  • curl_multi_strerror — Return string describing error code

  • curl_pause — Pause and unpause a connection

    int curl_pause    ( resource $ch   , int $bitmask   )


  • curl_reset — Reset all options of a libcurl session handle

    void curl_reset    ( resource $ch   )


  • curl_setopt_array — 为cURL传输会话批量设置选项

  • curl_setopt — 设置一个cURL传输选项

    bool curl_setopt ( resource ch, string option, mixed value)

    这个函数是最重要的,一切玄妙均在此。

CURLOPT_AUTOREFERER
当根据Location:重定向时,自动设置header中的Refer:信息
CURLOPT_COOKIESESSION启用时cURL会仅仅传递一个session cookie,忽略其他cookie,默认情况下从URL会将所有cookie返回给服务器。session cookie指用来判断服务器端的session是否有效而存在的cookie。
CURLOPT_FOLLOWLOCATION启用将服务器返回的“Location:”放在header中,递归地返回给服务器,使用CURLOPT_MAXREDIRS可以限定递归返回的数量。
CURLOPT_HEADER
启用时将头文件的信息作为数据流输出
CURLOPT_RETURNTRANSFER将curl_exc()获取的信息以文件流的形式返回,而不是直接输出。
CURLOPT_INFILESIZE设定上传文件的大小,单位是字节
CURLOPT_MAXCONNECTS允许的额最大连接数量,超过会通过CURLOPT_CLOSEPOLICY决定应该停止那些连接
CURLOPT_MAXREDIRS指定HTTP重定向的最多数量
CURLOPT_COOKIEFILE包含cookie数据的文件名,cookie的文件格式可以使netscape格式,或者只是纯HTTP头部信息存入文件
CURLOPT_COOKIEJAR连接结束后保存cookie信息的文件
CURLOPT_ENCODING
HTTP请求头中“Accept-Encoding”的值,支持的编码有identity,deflate和gzip。如果为空字符串,表示支持所有编码类型
CURLOPT_POSTFILEDS
全部数据使用HTTP协议中的post操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数通过urlencoded后的字符串类似于'paral=val1&paral2=val2'或使用一个以字段名为键值
CURLOPT_RANGE
以“X-Y”的形式组成,其中X和Y都是可选项获取数据的范围,单位是字节,HTTP传输线程也支持几个这样的而重复项中间用逗号分隔如‘X-Y,N-M’
CURLOPT_REFERER
HTTP请求头的referer内容
CURLOPT_HTTPHEADER
用来设置HTTP头字段的数组
CURLOPT_FILE
设置输出文件的位置,值是一个资源类型,默认为STDOUT(浏览器)
CURLOPT_INFILE
在上传文件的时候需要读取的文件地址,值是一个资源类型
CURLOPT_HEADERFUNCTION

设置一个回调函数,其有两个参数:cURL的资源句柄,输出的header数据。header数据的输出必须依赖这个函数,返回已经写入的数据大小。

CURLOPT_WRITEFUNCTION
拥有两个参数的回调函数:会话句柄,HTTP响应头信息的字符串。使用此回调函数,将自行处理响应头信息。响应头信息是整个字符串。设置返回值为精确的已写入字符串长度。发生错误时传输线程终止。
CURLOPT_COOKIE
设定HTTP请求中的cookie,多个cookie用分号分隔,分号后带一个空格(例如,“fruit=apple; color=red”)


  • curl_share_close — Close a cURL share handle

  • curl_share_init — Initialize a cURL share handle

  • curl_share_setopt — Set an option for a cURL share handle.

  • curl_strerror — Return string describing the given error code

  • curl_unescape — Decodes the given URL encoded string

  • curl_version — 获取cURL版本信息

    string curl_version ( void )



转载于:https://my.oschina.net/u/2672206/blog/662230

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值