curl

来源:互联网 发布:针孔摄像头安装软件 编辑:程序博客网 时间:2024/06/06 05:33
CURL
http 协议:文件/数据      上传

【php-mysql/php-mysqli】 


API/DLL扩展类
  var_dump();

基础
 网络资源访问和下载
网页爬虫、模拟登陆、上传、下载、获取接口数据

支持协议 FTP .FTPS/HTTP/HTTPS...

使用 [基本格式]:

<?php
$ch = curl_init();//初始化
curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com"); //执行
curl_exec($ch);//获取
curl_close($ch);//关闭

     [非输出版本]:
<?php
header('content-type:text/html;charset=utf-8');
//1.初始化
$ch=curl_init();

//2.设置选项
curl_setopt($ch,CURLOPT_URL,'http://www.baidu.com');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//返回结果不直接输出

//3.执行cURL
$res=curl_exec($ch);
$res=str_ireplace('<img src="//www.baidu.com/img/bd_logo.png" width="270" height="129">','景山老师',$res);
echo $res;

//4.关闭
curl_close($ch);


常用函数
file();

练习

HTTPS 提交
$ch = curl_init();//初始化
curl_setopt($ch,CURLOPT_URL,"https://github.com"); //执行
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); //
curl_exec($ch);//获取
curl_close($ch);//关闭


POST 提交
<?php
header('content-type:text/html;charset=utf-8');

$data="username=jingshan&pwd=123456"; //提交的数据
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,'http://test.5ihy.com/action/action.php');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  //以文件流的形式返回
curl_setopt($ch,CURLOPT_POST,1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //发送POST请求
$res=curl_exec($ch);   //不直接显示
curl_close($ch);
echo $res;



查找手机号信息(百度API接口)
<?php
header('content-type:text/html;charset=utf-8');
$phone='18046200240';
$ch = curl_init(); //初始化
$url ='http://apis.baidu.com/apistore/mobilenumber/mobilenumber?phone='.$phone;
$header = array(
     'apikey:f1f70f89078d7af7e436e1b59ed10dc4',
);
//添加apikey到header
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_URL,$url);  //执行
$res = curl_exec($ch); //接收

var_dump($res); //显示


获取天气信息 [百度API]
$ch = curl_init();
    $url = 'http://apis.baidu.com/apistore/weatherservice/citylist?cityname=%E6%9C%9D%E9%98%B3';
    $header = array(
        'apikey: f1f70f89078d7af7e436e1b59ed10dc4',
    );
    // 添加apikey到header
    curl_setopt($ch, CURLOPT_HTTPHEADER  , $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // 执行HTTP请求
    curl_setopt($ch , CURLOPT_URL , $url);
    $res = curl_exec($ch);

    var_dump(json_decode($res));





上传文件
header('content-type:text/html;charset=utf-8');
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://test.5ihy.com/action/upload.php");
curl_setopt($ch,CURLOPT_POST,1);//设置post方式发送数据
curl_setopt($ch, CURLOPT_POSTFIELDS, [// 设置上传的文件
    'file' => new CURLFile(realpath('./images/bd_logo.png'))//绝对路径 php5.4
]);
$c = curl_exec($ch);
curl_close($ch);




文件上传  [版本2]
header('content-type:text/html;charset=utf-8');
$curlFile = curl_file_create(realpath('./images/bd_logo.png'),'image/jpeg','test_name');
$data=array('file'=>$curlFile);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,'http://test.5ihy.com/action/upload.php');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);
curl_close($ch);


下载图片
header('content-type:text/html;charset=utf-8');
$ch=curl_init();// 初始化 数据连接
curl_setopt($ch,CURLOPT_URL,'https://www.baidu.com/img/bd_logo1.png');// 设置 URL
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);// 设置不显示
$res=curl_exec($ch);// 执行
$info=curl_getinfo($ch);// 获取信息
$filename="./myPic.jpg";
file_put_contents($filename, $res);//写入文件
$size=filesize($filename);// 获取文件名字
if($size!=$info['size_download']){
    echo '下载数据不完整';
}else{
    echo '下载数据完整';
}



下载图片 好用的方法
header('content-type:text/html;charset=utf-8');

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"http://edu.5ihy.com/static/images/list_php.png");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$data = curl_exec($ch);
file_put_contents('uploads/bd_logo.png',$data);







复制句柄
header('content-type:text/html;charset=utf-8);
$ch1 = curl_init();
curl_setopt($ch1,CURLOPT_URL,'http://www.baidu.com');
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,true);

//复制句柄
$ch2=curl_copy_handle($ch1);
//重置选项
curl_reset($ch2);
curl_setopt($ch2,CURLOPT_URL,'Http://www.jd.com');
$res = curl_exec($ch2);
curl_close($ch1);
curl_close($ch2);
echo $res;



展示错误信息
header('content-type:text/html; charset=utf-8');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'http://www.zheng.com/');//链接一个不存在的站点
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);   //设置不直接显示
$res=curl_exec($ch); //执行, 接收,返回资源
if(false===$res){          //如果失败
          echo 'cURL Error:'.curl_error($ch);
          echo "<br/>";
}
if($errno=curl_errno($ch)){     // 如果有 errno 信息
    echo "curl_strerror:";
    echo curl_strerror($errno);
    echo "<br/>";
    //exit;
}
$info=curl_getinfo($ch);
var_dump($info);         // 打印全部信息
curl_close($ch);




数组格式进行设置
$ch=curl_init();
$options=array(
    CURLOPT_URL=>'http://www.baidu.com',
    CURLOPT_RETURNTRANSFER=>1
);// 数组格式设置
curl_setopt_array($ch, $options);
$res=curl_exec($ch);
curl_close($ch);
echo $res;


版本展示
var_dump(extension_loaded('curl'));
var_dump(function_exists('curl_version'));
var_dump(get_defined_functions());

curl项目
 注册用户【上传、展示】
1.自己的服务器 数据库

       a.   user 表
                    user pwd 头像
       b. 链接数据库
                  List.php
                    $db = new mysqli('',  ,  ,   );


         c.post提交数据
       regsiter.php->regsiter_do.php

          d.curl模拟post提交
        curl.php->regsiter_do.php
0 0
原创粉丝点击