Curl 模拟get、 post、put 请求以及上传文件

1,Curl 模拟GET请求

 //初始化
 $ch = curl_init();
 //设置请求地址L
 curl_setopt($ch, CURLOPT_URL, "http://www.nettuts.com");
 //设置响应不直接输出到页面,1为不直接输出
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 //设置是否输出请求头信息,0为不输出
 curl_setopt($ch, CURLOPT_HEADER, 0);
 //执行并获取HTML文档内容
 $output = curl_exec($ch);
 //释放curl句柄
 curl_close($ch);

2,Curl 模拟POST 请求

 //curl 初始化
 $ch = curl_init($url);
 //设置请求头(可有可无)
 curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 //设置是否不直接输出
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 //设置请求方式
 curl_setopt($ch, CURLOPT_POST, 1);
 //设置传输字段
 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
 //执行
 $out_put = curl_exec($ch);
 //释放curl句柄
 curl_close($ch);

3,Curl 模拟put请求

//curl 初始化
$ch = curl_init($url); 
//设置请求头(可有可无)
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
//定义是否显示响应状态头 1:显示 ; 0:不显示
curl_setopt($ch, CURLOPT_HEADER,0); 
//定义请求类型
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "put"); 
//设置是否不直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
//定义提交的数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
//执行
$out_put = curl_exec($ch);
//释放curl句柄
curl_close($ch);

4,Curl 上传文件

header('content-type:text/html;charset=utf8');
$url = "http://".$_SERVER['HTTP_HOST']."/index.php?a=upfile";
$post_data = array(
      'type' => 'attach',
      'file' => new \CURLFile(realpath('a.txt'))
);
$ch = curl_init($url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,  CURLOPT_SAFE_UPLOAD, false);
curl_setopt($ch , CURLOPT_POST, 1);
curl_setopt($ch , CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
echo $output;

你可能感兴趣的:(php)