CURL学习(一)

 * Description:
 *此文件为curl学习例子,参考 http://www.chinaz.com/program/2010/0119/104346.shtmlPHP手册
 *libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。
 *libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、FTP上传、HTTP基于表单的上传、代理、COOKIES和用户名+密码的验证

/**
 *Example1
 *cURL的请求的基本步骤:
 *1.初始化
 *2.设置变量
 *3.执行并获取结果
 *4.释放cURL句柄
 */
  $ch = curl_init();  // 1、初始化
 
curl_setopt( $ch, CURLOPT_URL, 'http://www.baidu.com');  // 2、设置选项、包括URL
 
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);  // CURLOPT_RETURNTRANSFER 将curl_exec()获取的信息以流文件形式返回,而不是直接输出
 
curl_setopt( $ch, CURLOPT_HEADER, 1);  // CURLOPT_HEADER 启用时会将头文件的信息作为数据流输出
 
$output = curl_exec( $ch);  // 3、执行 curl_exec失败时返回flase,判断时应该用===
 
curl_close( $ch);  // 4、释放句柄
/**

 *Example2
 *写两个简单的函数用curl来发送POST和GET请求
 *curl_setopt_array() 为cURL传输回话批量设置选项
 */

/* *
 *Send a POST request using cURL
 *@param string $url to request
 *@param array $post values to send
 *@param array $options for url
 
*/
function curl_post( $urlarray  $post =  NULLarray  $options =  array()) {

     $defaults =  array(
        CURLOPT_POST => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_URL =>  $url,
        CURLOPT_FRESH_CONNECT => 1,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_FORBID_REUSE => 1,
        CURLOPT_TIMEOUT => 4,
        CURLOPT_POSTFIELDS =>  http_build_query( $post)
    );
    
     $ch = curl_init();
    curl_setopt_array( $ch $options +  $defaults); // 数组相加 根据key将在后一个数组而不再前一个数组中的item加入第一个数组中(任意一个数组不是数组导致Faltal error)
     if( false ===  $result = curl_exec( $ch)) {
         trigger_error(curl_error( $ch));
    }
    curl_close( $ch);
     return  $result;
}

/* *
 *Send a GET request using cURL
 *@param string $url to request
 *@param array $get values to send
 *@param array $options for cURL
 
*/
function curl_get( $urlarray  $get =  NULLarray  $options =  array()) {
    
     $defaults =  array(
        CURLOPT_URL =>  $url.($get ? (strpos($url, '?') === false ? '?' : '&').http_build_query($get) : ''),
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_TIMEOUT => 4
    );
    
     $ch = curl_init();
    curl_setopt_array( $ch $options +  $defaults);
     if( false ===  $result = curl_exec( $ch)) {
         trigger_error(curl_error( $ch));
    }
    curl_close( $ch);
     return  $result;
}
/**
 *Example3
 *通过cURL上传文件
 */
$url = 'http://localhost/log.php';
$post_data =  array(
    'name' => 'myname',
    'file' => '@d:\test.jpg'  // 上传的本地文件要加@符号
);
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL,  $url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_POST, 1);  // 可有可无
curl_setopt( $ch, CURLOPT_POSTFIELDS,  $post_data);
if( false ===  $result = curl_exec( $ch)) {
     trigger_error(curl_error( $ch));
}
curl_close( $ch);


转载于:https://www.cnblogs.com/caoyuhan/archive/2012/09/25/2701422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值