`
osacar
  • 浏览: 212519 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

请您先登录,才能继续操作

PHP CURL类封装

    博客分类:
  • PHP
 
阅读更多
<?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&para2=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类

    CUrlHttp封装curl类是一个基于curl库的PHP类,它为开发者提供了更加便捷的方式来执行HTTP请求,如GET、POST以及表单提交等操作。curl库是一个强大的URL传输库,广泛应用于各种网络请求任务,包括文件上传下载、网页...

    php的curl封装类用法实例.zip

    本压缩包“php的curl封装类用法实例.zip”提供了一个封装好的PHP类,旨在简化cURL操作,使得开发者能够更加方便地处理HTTP请求。以下是对这个封装类的详细解释和使用示例。 1. **cURL介绍** cURL(Client URL ...

    PHP封装CURL扩展类

    主要介绍了PHP封装CURL扩展类,实例分析了基于curl发送post、get请求及操作cookie等相关技巧 编码规范 * @class 类名首字母大写,类名为多个单词, 每个大字首字母大写 eg: class Curl , class CurlPage * @variable...

    php实现的Curl封装类

    本文将详细介绍如何利用PHP实现一个Curl封装类,以及其使用方法。 首先,Curl封装类的基本结构通常包含初始化Curl句柄、设置请求选项、执行请求和处理响应等功能。下面是一个简单的Curl封装类的代码示例: ```php ...

    php实现的Curl封装类.zip

    主要介绍了php实现的Curl封装类的用法,以完整实例形式较为详细的分析了Curl封装类的定义及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下。如果朋友们有什么更好的类,可以发送到我们PHP中文网一起学习...

    php的curl封装类

    一个php的curl封装类,基础发起curl请求函数,来源一定要设置成来自本站,要求结果为字符串且输出到屏幕上,发起get请求,发起post请求,处理发起非get请求的传输数据,发起put请求,发起delete请求。

    PHP封装CURL扩展类.zip

    这个压缩包中的"PHP封装CURL扩展类"很可能包含了一个名为`Curl`或类似名称的类,该类封装了CURL的各种功能。这个类可能包含以下关键方法: 1. `__construct()`:构造函数,可能用于初始化CURL会话,并设置默认的...

    php的curl封装类.zip

    一个php的curl封装类,基础发起curl请求函数,来源一定要设置成来自本站,要求结果为字符串且输出到屏幕上,发起get请求,发起post请求,处理发起非get请求的传输数据,发起put请求,发起delete请求。

    php中curl类常用方法封装和详解

    本文将详细讲解PHP中的cURL类及其常用方法,如何封装和使用,以及如何处理登录、获取Cookie、模拟提交数据等任务。 首先,让我们了解什么是cURL。cURL(Client URL Library)是一个库,它提供了在命令行或编程语言...

    php的curl二次封装的类.zip

    5. **执行请求**:封装类会有一个执行cURL请求的方法,例如`exec()`,它调用cURL的`curl_exec()`函数,并返回响应结果。 6. **错误处理**:封装类会处理cURL执行过程中可能出现的错误,提供一个方法来获取错误信息...

    php中curl类常用方法封装和详解.zip

    分享一个php中curl类, 设置Cookie文件保存路径及文件名,模拟登录获取Cookie函数 , 模拟获取内容函数,模拟提交数据函数,php中curl类常用方法封装和详解

    PHP curl 封装

    PHP 通用curl简单封装,可以获取header,灵活配置

    php的Curl处理类

    hp的curl封装类用法,以实例形式较为详细的讲述了curl封装类及其使用方法,并总结了GET与POST的用法。 使用函数之前我们要需要把php curl模块打开(libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll) 开启php ...

    php的curl封装类用法实例

    【PHP的cURL封装类用法实例】 在PHP开发中,cURL库是一个非常重要的工具,它允许我们从服务器向另一个服务器发送HTTP请求,并获取响应数据。为了方便使用,开发者通常会将cURL相关的功能封装成一个类,这样可以在多...

    一个非常好用的curl封装类

    如果你对curl不熟悉,如果你想要了解curl,这个类你值得拥有,常用的方法已经封装好。

    http类库:基于php curl库封装的http类库.zip

    这个压缩包包含了一个名为“基于php curl库封装的http类库”的PHP类库,它将PHP内置的cURL库进行了高级封装,以提供更加简洁和灵活的HTTP请求接口。 PHP的cURL库是一个功能丰富的库,用于在各种协议(包括HTTP、...

    curl 封装的类库

    项目中自己使用的时候,自己封装的类库,请大家多多指教

Global site tag (gtag.js) - Google Analytics