<?php
class Curl {
/*
* get 方式获取访问指定地址
* @param string url 要访问的地址
* @param string cookie cookie的存放地址,没有则不发送cookie
* @return string curl_exec()获取的信息
* @author andy
**/
public function get( $url, $cookie='' )
{
// 初始化一个cURL会话
$curl = curl_init($url);
// 不显示header信息
curl_setopt($curl, CURLOPT_HEADER, 0);
// 将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 使用自动跳转
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
if(!empty($cookie)) {
// 包含cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者只是纯HTTP头部信息存入文件。
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
}
// 自动设置Referer
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
// 执行一个curl会话
$tmp = curl_exec($curl);
// 关闭curl会话
curl_close($curl);
return $tmp;
}
/*
* post 方式模拟请求指定地址
* @param string url 请求的指定地址
* @param array params 请求所带的
* #patam string cookie cookie存放地址
* @return string curl_exec()获取的信息
* @author andy
**/
public function post( $url, $params, $cookie )
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
// 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
//模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
//发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
curl_setopt($curl, CURLOPT_POST, 1);
// 将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 使用自动跳转
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
// 自动设置Referer
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
// Cookie地址
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
// 全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,
// 在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串
// 类似'para1=val1¶2=val2&...'或使用一个以字段名为键值,字段数据为值的数组
// 如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
/**
* curl 下载远程文件保存到本地
* @param string remote 远程地址
* @param string local 本地保存地址
* @param string cookie cookie位置由于某些网站有访
* 问限制例如路透社你会发现如果你没有cookie是无法获
* 取该网站上的内容,所以要先模拟登陆获取cookie,
* 再带着cookie去请求远程地址
* @return void
* @author andy
*/
public function curlDownload( $remote, $local, $cookie = '' ) {
$cp = curl_init($remote);
$fp = fopen($local,"w");
curl_setopt($cp, CURLOPT_FILE, $fp);
curl_setopt($cp, CURLOPT_HEADER, 0);
if($cookie != ''){
curl_setopt($cp, CURLOPT_COOKIEFILE, $cookie);
}
curl_exec($cp);
curl_close($cp);
fclose($fp);
}
}
分享到:
相关推荐
CUrlHttp封装curl类是一个基于curl库的PHP类,它为开发者提供了更加便捷的方式来执行HTTP请求,如GET、POST以及表单提交等操作。curl库是一个强大的URL传输库,广泛应用于各种网络请求任务,包括文件上传下载、网页...
本压缩包“php的curl封装类用法实例.zip”提供了一个封装好的PHP类,旨在简化cURL操作,使得开发者能够更加方便地处理HTTP请求。以下是对这个封装类的详细解释和使用示例。 1. **cURL介绍** cURL(Client URL ...
主要介绍了PHP封装CURL扩展类,实例分析了基于curl发送post、get请求及操作cookie等相关技巧 编码规范 * @class 类名首字母大写,类名为多个单词, 每个大字首字母大写 eg: class Curl , class CurlPage * @variable...
本文将详细介绍如何利用PHP实现一个Curl封装类,以及其使用方法。 首先,Curl封装类的基本结构通常包含初始化Curl句柄、设置请求选项、执行请求和处理响应等功能。下面是一个简单的Curl封装类的代码示例: ```php ...
主要介绍了php实现的Curl封装类的用法,以完整实例形式较为详细的分析了Curl封装类的定义及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下。如果朋友们有什么更好的类,可以发送到我们PHP中文网一起学习...
一个php的curl封装类,基础发起curl请求函数,来源一定要设置成来自本站,要求结果为字符串且输出到屏幕上,发起get请求,发起post请求,处理发起非get请求的传输数据,发起put请求,发起delete请求。
这个压缩包中的"PHP封装CURL扩展类"很可能包含了一个名为`Curl`或类似名称的类,该类封装了CURL的各种功能。这个类可能包含以下关键方法: 1. `__construct()`:构造函数,可能用于初始化CURL会话,并设置默认的...
一个php的curl封装类,基础发起curl请求函数,来源一定要设置成来自本站,要求结果为字符串且输出到屏幕上,发起get请求,发起post请求,处理发起非get请求的传输数据,发起put请求,发起delete请求。
本文将详细讲解PHP中的cURL类及其常用方法,如何封装和使用,以及如何处理登录、获取Cookie、模拟提交数据等任务。 首先,让我们了解什么是cURL。cURL(Client URL Library)是一个库,它提供了在命令行或编程语言...
5. **执行请求**:封装类会有一个执行cURL请求的方法,例如`exec()`,它调用cURL的`curl_exec()`函数,并返回响应结果。 6. **错误处理**:封装类会处理cURL执行过程中可能出现的错误,提供一个方法来获取错误信息...
分享一个php中curl类, 设置Cookie文件保存路径及文件名,模拟登录获取Cookie函数 , 模拟获取内容函数,模拟提交数据函数,php中curl类常用方法封装和详解
PHP 通用curl简单封装,可以获取header,灵活配置
hp的curl封装类用法,以实例形式较为详细的讲述了curl封装类及其使用方法,并总结了GET与POST的用法。 使用函数之前我们要需要把php curl模块打开(libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll) 开启php ...
【PHP的cURL封装类用法实例】 在PHP开发中,cURL库是一个非常重要的工具,它允许我们从服务器向另一个服务器发送HTTP请求,并获取响应数据。为了方便使用,开发者通常会将cURL相关的功能封装成一个类,这样可以在多...
如果你对curl不熟悉,如果你想要了解curl,这个类你值得拥有,常用的方法已经封装好。
这个压缩包包含了一个名为“基于php curl库封装的http类库”的PHP类库,它将PHP内置的cURL库进行了高级封装,以提供更加简洁和灵活的HTTP请求接口。 PHP的cURL库是一个功能丰富的库,用于在各种协议(包括HTTP、...
项目中自己使用的时候,自己封装的类库,请大家多多指教