php使用CURL

CURL是一个非常强大的开源库,支持包括HTTP、FTP、TELNET等很多协议,我们使用它来发送HTTP请求。

使用CURL发送请求的基本流程

使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤:

  1. 初始化连接句柄
  2. 设置CURL选项
  3. 执行并获取结果
  4. 释放CURL连接句柄
// 1. 初始化
$ch = curl_init();

// 2. 设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //获取的信息以变量形式的形式返回,而不是直接输出
curl_setopt($ch,CURLOPT_HEADER,0); //不返回HTTP头部信息

// 3. 执行并获取内容
$data = curl_exec($ch);

// 4. 释放curl句柄
curl_close($ch);

使用CURL发送GET请求

GET方式其实就是url带上参数就可以了,没有变化

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.baidu.com?xxx=123456&aaa=abcdef');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);

使用CURL发送POST请求

POST方式需要设置CURLOPT_POST参数

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.baidu.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1); //设置以POST方式发送
$post_data = array(
    "username" => "coder",
    "password" => "12345"
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);    //POST数据(必须数组形式)
$data = curl_exec($ch);
curl_close($ch);

基本用法就是这些,有时还会有一些根据需要设置HEADER信息的操作。
下面贴一下我常用的CURL方法

function curl_post($url,$arr){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8"));//POST发送json数据
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($arr));
    $data = curl_exec($ch);
    curl_close($ch);
    return json_decode($data,true);
}

你可能感兴趣的:(PHP,php,curl)