摘要
PHP CURL
CURL是liunx系统的一个命令行工具,目的是进行数据抓取;现在CURL已经在非常多的系统中使用,WIN用户可以使用DOS版本的CURL命令操作,操作方法很简单,就是在CMD窗口中找到CURL文件夹,执行CURL命令即可,CMD中操作CURL不是本文讲解的重点,本文讲解PHP中的CURL;
一,PHP中安装CURL
1,PHP.INI中找到 ;extension=php_curl.dll,去掉分号,如果没有自己添加一行;
2,本文使用的是phpstudy,在其他菜单->PHP扩展及设置->PHP扩展:找到php_curl,打钩即可;但是通常情况下phpstudy是默认打开curl功能的;
二,CURL的最简单操作
<?php
// 创建curl,若此步骤错误,说明PHP扩展没有打开
$ch = curl_init();
//设置curl,该步骤是最重要,内容也是最多的
curl_setopt($ch, CURLOPT_URL,‘http://www.baidu.com’);
// 执行本次curl
curl_exec($ch);
// 关闭cURL资源,并且释放系统资源
curl_close($ch);
?>
--执行以后,于是看见百度网页;
三,CURL设置简介
curl执行步骤一般是四步走,初始化-设置-执行-关闭,其中设置的内容最多,也最复杂,设置如下:
http://www.w3cschool.cc/php/php-ref-curl.html
四,CURL模拟POST
1,执行CURL的页面:
<?php
//设置传递的数据
$curlPost= array('s'=>'tttt','p'=>'sssfe');;
$ch=curl_init();
//设置访问URL
curl_setopt($ch,CURLOPT_URL,'
//设置是否获取页面的head,1代表true,一般情况是设置为0
curl_setopt($ch,CURLOPT_HEADER,0);
//设置是否以文件流形式返回,文件流返回暂不显示,等待提取数据
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//设置是否要post数据
curl_setopt($ch,CURLOPT_POST,1);
//设置POST文件内容
curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);
$data=curl_exec($ch);
curl_close($ch);
//打印出返还数据
print_r($data);
2,接收页面:
<?php
//接收页面直接返还出接收的数据
print_r($_REQUEST);
五,将post简单封装成类
<?php
class curl{
public static function curl_post($url,$data){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$rs=curl_exec($ch);
curl_close($ch);
return $rs;
}
}
//打印结果
print_r(curl::curl_post('http://localhost/test/curl.php',array('data_1','data_2')));
PHP cURL 函数
以下包含了PHP cURL函数列表:
函数 描述 curl_close() 关闭一个cURL会话。 curl_copy_handle() 复制一个cURL句柄和它的所有选项。 curl_errno() 返回最后一次的错误号。 curl_error() 返回一个保护当前会话最近一次错误的字符串。 curl_escape() 返回转义字符串,对给定的字符串进行URL编码。 curl_exec() 执行一个cURL会话。 curl_file_create() 创建一个
CURLFile 对象。 curl_getinfo() 获取一个cURL连接资源句柄的信息。 curl_init() 初始化一个cURL会话。 curl_multi_add_handle() 向curl批处理会话中添加单独的curl句柄。 curl_multi_close() 关闭一组cURL句柄。 curl_multi_exec() 运行当前
cURL 句柄的子连接。 curl_multi_getcontent() 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流。 curl_multi_info_read() 获取当前解析的cURL的相关传输信息。 curl_multi_init() 返回一个新cURL批处理句柄。 curl_multi_remove_handle() 移除curl批处理句柄资源中的某个句柄资源。 curl_multi_select() 等待所有cURL批处理中的活动连接。 curl_multi_setopt() 设置一个批处理cURL传输选项。 curl_multi_strerror() 返回描述错误码的字符串文本。 curl_pause() 暂停及恢复连接。 curl_reset() 重置libcurl的会话句柄的所有选项。 curl_setopt_array() 为cURL传输会话批量设置选项。 curl_setopt() 设置一个cURL传输选项。 curl_share_close() 关闭cURL共享句柄。 curl_share_init() 初始化cURL共享句柄。 curl_share_setopt() 设置一个共享句柄的cURL传输选项。 curl_strerror() 返回错误代码的字符串描述。 curl_unescape() 解码URL编码后的字符串。 curl_version() 获取cURL版本信息。