cURL


layout: post
title: "cURL"
date: 2016-05-12 20:52:24 +0800
comments: true
categories:


cURl的概念

cURL(Client URL Library Functions)使用URL语法传输数据的命令行工具

使用场景

  • 网页资源

    • 网页爬虫
  • WebService数据接口资源

    • 动态获取接口数据,如天气 号码归属地等
  • FTP服务器里面的文件资源

    • 下载Ftp里面的文件
  • 其他资源

    • 所有网络上的资源都可以用cURL访问和下载

确定是否支持cURLphp -i |grep cURL

cURL操作步骤

  • 初始化
    • curl_init()
  • 执行
    • curl_exec()
  • 关闭
    • curl_close()

实例

  • 简单的网页爬虫

  • 抓取网页并替换部分内容

  • 调用WebService获取天气信息
    代码需要修改


  
    
      %s
    
  
','北京');
$curlobj = curl_init(); 
curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx");  
curl_setopt($curlobj, CURLOPT_POST, 1);  
curl_setopt($curlobj, CURLOPT_HEADER, 0); 
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);  
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("Content-Type: application/soap+xml; charset=utf-8", 
    "Content-length: ".strlen($data),
    "SOAPAction:\"http://WebXml.com.cn/getWeatherbyCityName\"")); 
$rtn = curl_exec($curlobj);   
if(!curl_errno($curlobj)){
    $info = curl_getinfo($curlobj); 
    print_r($info);
    echo "RETURN: " . $rtn;  
} else {
  echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>
  • 登录网站并下载个人空间页面

 'promonkey', 
    'password' => '1q2w3e',
    'remember'=>1);
$data='username=xxx&password=xxx&remember=1';
$curlobj = curl_init();         // 初始化
curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/user/login");      // 设置访问网页的URL
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);            // 执行之后不直接打印出来

// Cookie相关设置,这部分设置需要在所有会话开始之前设置
date_default_timezone_set('PRC'); // 使用Cookie时,必须先设置时区
curl_setopt($curlobj, CURLOPT_COOKIESESSION, TRUE); 
curl_setopt($curlobj, CURLOPT_HEADER, 0); 
curl_setopt($curlobj, CURLOPT_FOLLOWLOCATION, 1); // 这样能够让cURL支持页面链接跳转

curl_setopt($curlobj, CURLOPT_POST, 1);  
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);  
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8", 
    "Content-length: ".strlen($data)
    )); 
curl_exec($curlobj);    // 执行
curl_setopt($curlobj, CURLOPT_URL, "http://www.imooc.com/space/index");
curl_setopt($curlobj, CURLOPT_POST, 0);  
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("Content-type: text/xml"
    )); 
$output=curl_exec($curlobj);    // 执行
curl_close($curlobj);           // 关闭cURL
echo $output;
?>
  • FTP服务器下载文件

  • 上传文件到FTP

  • 访问HTTPS资源


你可能感兴趣的:(cURL)