• tp6教程


    tp6

    安装

    下载:composer create-project topthink/think tp

    安装多应用:composer require topthink/think-multi-app

    修改目录(完成)

    ├─app 应用目录
    │  ├─index              主应用
    │  │  ├─controller      控制器目录
    │  │  ├─model           模型目录
    │  │  ├─view            视图目录
    │  │  ├─config          配置目录
    │  │  ├─route           路由目录
    │  │  └─ ...            更多类库目录
    │  │ 
    │  ├─admin              后台应用
    │  │  ├─controller      控制器目录
    │  │  ├─model           模型目录
    │  │  ├─view            视图目录
    │  │  ├─config          配置目录
    │  │  ├─route           路由目录
    │  │  └─ ...            更多类库目录
    │
    ├─public                WEB目录(对外访问目录)
    │  ├─admin.php          后台入口文件
    │  ├─index.php          入口文件
    │  ├─router.php         快速测试文件
    │  └─.htaccess          用于apache的重写
    │
    ├─config                全局应用配置目录
    ├─runtime               运行时目录
    │  ├─index              index应用运行时目录
    │  └─admin              admin应用运行时目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    http,get,post设置头

    ‘Content-Type’: ‘application/json’

    ‘Content-Type’: ‘application/x-www-form-urlencoded’

    命令

    查看命令:php think

    创建控制器
    php think make:controller admin\controller\User
    php think make:controller index\controller\User
    创建模型make:model
    php think make:model admin\model\User
    php think make:model index\model\User
    创建中间件make:middleware
    php think make:middleware admin\middleware\Http
    php think make:middleware index\middleware\Oauth2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    如果使用了多应用模式,可以快速生成一个应用,例如生成demo应用的指令如下:
    php think build demo
    
    • 1
    • 2

    跨域

    Route::group( function () {
        Route::get('user', 'user/index');
        Route::post('useradd', 'user/useradd');
        Route::delete('userdel', 'user/userdel');
    })->allowCrossDomain([
        'Access-Control-Allow-Origin'        => 'http://localhost:8080',
        'Access-Control-Allow-Headers'       =>'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN',
        'Access-Control-Allow-Methods'       =>'GET, POST, PUT, DELETE',
        'Access-Control-Allow-Credentials'   => 'true'
    ]);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    安装视图

    composer require topthink/think-view
    
    • 1

    输出html

    return View::fetch('index', [
        'name'  => 'ThinkPHP',
        'email' => 'thinkphp@qq.com'
    ]);
    
    • 1
    • 2
    • 3
    • 4

    html输出

    {$name}

    数据库Db

    使用需要引入use think\facade\Db;

    不需要写表前缀

    $list = Db::name('user')->where('id', 1)->find();
    
    • 1

    必须写表前缀

    $list = Db::table('dade_user')->where('id', 1)->find();
    
    • 1
    插入,添加
    Db::execute("insert into dade_order_goods(name,price,state,stock,items,richtext,dade) values ($name,$price,$state,$stock,$items,$richtext,$date)");
    
    分页
    $pageSize = (1-1)*10;
    $list = Db::query("select * from dade_order_goods limit $pageSize,10");
    
    根据id倒序order by id desc分页
    $pageSize = (1-1)*10;
    $list = Db::query("select * from dade_order_goods order by id desc limit $pageSize,10");
    加条件
    select * from dade_user_withdrawal where (state=2) order by id desc limit $pageSize,7
    
    查总数count(*)
    $count = Db::query("select count(id) from dade_order_goods");//总数数组
    $length = ceil($count[0]['count(id)']/10);//总页数
    
    删除
    Db::execute("delete from dade_order_goods where id=$id");
    
    修改
     Db::execute("update dade_order_goods set name=$name,price=$price where id=$id");
     
     一次写入100条
     Db::table('cdj_pindex_house')
     ->limit(100)
     ->insertAll($info);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    模型

    创建模型

    php think make:model admin\model\User

    //定义id
    protected $pk = 'uid';
    
    //数据库表
    protected $name = 'user';
    //数据库表这个需要写表前缀
    protected $table = 'think_user';
    
    引入use app\admin\model\User as Users;
    查询
    $list = User::where('status', 1)->limit(3)->order('id desc')->select();
    查两列
    $user = User::column('id,user');
    
    添加
    $user = User::create([
        'name'  =>  'thinkphp',
        'email' =>  'thinkphp@qq.com'
    ]);
    批量添加
    $user = User::create([
        'name'  =>  'thinkphp',
        'email' =>  'thinkphp@qq.com'
    ], 
    ['name', 'email']);
    
    更新
    User::where('id', 1)->update(['name' => 'thinkphp']);
    
    删除
    User::destroy(1);
    支持批量删除多个数据
    User::destroy([1,2,3]);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    倒序查询

    Users::order('id desc')->select();
    
    • 1

    查询多少条分页

    $ids = $request->get('ids');
    $list = Users::page($ids,10)->order('id desc')->select();
    $page  = Users::count();
    $length = ceil($page/10);
    $listpage = [$list,$page,$length];
    return json($listpage);
    //统计查询出多少条
    $page = Users::where('user', 'like', '%'.$search .'%')->select()->count();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    模型关系查询一对多,一对一

    正向

    一对多
    public function orsers()
    {
        return $this->hasMany(Order::class,'store_id');
    }
    一对一
    public function stores()
    {
        return $this->hasOne(Store::class, 'store_id');
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    反向

    public function stores()
    {
        return $this->belongsTo(Store::class,'store_id');
    }
    //查询
    $idsv = 1;
    $list = Users::with('stores')->page($idsv,10)->order('id desc')->select();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    合并在一个数组里查询

    $list = Orders::withJoin(['stores'  => ['id', 'user']])->page($idsv,10)->order('id desc')->select();
    
    • 1

    模型创建修改时间戳转换

    protected $type = [
       'tiem2'  =>  'timestamp:Y/m/d H:i:s',
    ];
    protected $createTime = 'tiem';
    protected $updateTime = 'tiem1';
    protected $dateFormat = "Y-m-d H:i:s";
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    PHP写入文件excel

    第一种
    file_put_contents("excel/tests.xlsx", $shuj, FILE_APPEND);
    
    • 1
    • 2
    第二种(写入一次w,追加写入a)
    $file = fopen("excel/test1.xlsx","a");
    fwrite($file,"数据");
    fclose($file);
    
    • 1
    • 2
    • 3
    • 4

    php获得当前时间

    $userlevel['time'] = date('Y-m-d H:i:s');
    $userlevel['time'] = time();
    第二种写法
    $t=time();
    date("Y-m-d H:i:s",$t);
    日期转时间戳
    strtotime(date("Y-m-d H:i"));
    //获得7天前时间
    $stime = mktime(0,0,0,date('m'),date('d')-7,date('Y'))-1;
    $time = date("Ymd",$stime);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    接收iview上传图片

    $file = $request->file('file');
    $savename = \think\facade\Filesystem::disk('public')->putFile( 'topic', $file);
    echo $savename;
    
    • 1
    • 2
    • 3

    php生成随机数

    $code = rand(10000, 99999);
    
    • 1

    保存数组解码数组

    // 写入数据库之前
    $staff_serialize = serialize($staff);            // 序列化成字符串
    $staff_json = json_encode($staff);               // JSON编码数组成字符串
    
    // 读取数据库后
    $staff_restore = unserialize($staff_serialize);  // 反序列化成数组
    $staff_dejson = json_decode($staff_json, true);  // JSON解码成数组
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    数组追加

    $list = [$goodsid,$result];
    $items = unserialize($order[0]['item']);
    $itemss = array_merge($items,$list);
    
    结果[3, "可以是的11111", 3, "可以是的11111", 3, "可以是的11111", 5, "可以是的1111111"]
    0: 3
    1: "可以是的11111"
    2: 3
    3: "可以是的11111"
    4: 3
    5: "可以是的11111"
    6: 5
    7: "可以是的1111111"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    理想二维追加

    $list = [[$goodsid,$result]];
    $items = unserialize($order[0]['item']);
    $itemss = array_merge_recursive($items,$list);
    
    结果[[5, "可以是的1111111"], [5, "可以是的1111111"], [2, "可以是的"], [2, "可以是的"], [2, "可以是的"], [2, "可以是的"]]
    0: [5, "可以是的1111111"]
    1: [5, "可以是的1111111"]
    2: [2, "可以是的"]
    3: [2, "可以是的"]
    4: [2, "可以是的"]
    5: [2, "可以是的"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    获得url

    $_SERVER[‘HTTP_HOST’]

    php跳转

    header("Location:".$url);
    
    • 1

    微信授权获得网站输出

    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
    $weix = file_get_contents($url);//获得网页输出
    
    • 1
    • 2

    redis缓存,缓存

    use think\facade\Cache;//引入
    
    $security = $user."_security";
    Cache::set($security, $users[0]['jurisdiction'],36000);//缓存权限
    $securitys = Cache::get($security);//查
    
    • 1
    • 2
    • 3
    • 4
    • 5

    php拆分成数组

    $Plain = “aaa|666|777”;

    l i s t = e x p l o d e ( ′ ∣ ′ , list = explode('|', list=explode(,Plain);

    微信发送消息推送

    public function template($id)
    {
        $user = User::where('id',$id)->value('openid');//微信openid
        $url = $_SERVER['HTTP_HOST'];
        $wxurl = 'https://api.weixin.qq.com/cgi-bin/token/template/send?access_token=ACCESS_TOKEN';
        $weixin = Weixin::where('id',1)->select();
        $appid = $weixin[0]['appid'];//公众号appid
        $secret = $weixin[0]['appsecret'];//公众号appsecret
        //获得access_token
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
        $weix = file_get_contents($url);//获得网页输出
        $obj=json_decode($weix,true );//解码
        $access_token= $obj['access_token'];//网页授权接口调用凭证
        //发送模板消息
        $fasuerl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token;
        $data = array(
            "touser"=>$user,
            "template_id"=>"2GSNHCC4xOrz9p9fqmKLbUwknwVa1iZnClqzbQb5xhw",
            "data" => array(
                "first" => array(
                    "value"=>"咨询通知",
                    "color"=>"#173177"
                ),
                "keyword1" => array(
                    "value"=>"巧克力!",
                    "color"=>"#000000"
                ),
                "keyword2" => array(
                    "value"=>"巧克力!",
                    "color"=>"#000000"
                ),
                "remark" => array(
                    "value"=>"巧克力!",
                    "color"=>"#000000"
                ),
            )
        );
        $params = json_encode($data);
        $res=$this->curl_post($fasuerl,$params);
        print_r($res);
    }
    //发送post请求
    function curl_post($url , $data=array()){
        $ch = curl_init();//创建curl请求
        curl_setopt($ch, CURLOPT_URL,$url); //设置发送数据的网址
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设置有返回值,0,直接显示
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); //禁用证书验证
        curl_setopt($ch, CURLOPT_POST, 1);//post方法请求
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//post请求发送的数据包
        $data = curl_exec($ch);
        curl_close($ch);
        $data = json_decode($data,true); //将json数据转成数组
        return $data;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    微信注册

    //微信信息,跳转授权
    public function index()
    {
        $weixin = wx::where('id',1)->select();
        $APPID = '';
        $url = '';
        $scope='snsapi_userinfo';
        foreach ($weixin as $item){
            $APPID = $item['appid'];
            $list[0]['appid'] = $item['appid'];
            $list[0]['appsecret'] = $item['appsecret'];
            $list[0]['encodingaeskey'] = $item['encodingaeskey'];
            $url = $_SERVER['HTTP_HOST'];
            $list[0]['url'] = $url."/".$item['url'];
            $url = 'http://'.$url."/".$item['url'];
            $list[0]['token'] = $item['token'];
        }
        $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$APPID."&redirect_uri=".urlencode($url)."&response_type=code&scope=".$scope."&state=STATE#wechat_redirect";
        $liste = [$url];
        return json($liste);
    }
    //获得用户信息,跳转返回可以获得信息
    public function weixiname(Request $request){
        $code = $request->get('code');
        $state = $request->get('state');
        $weixin = wx::where('id',1)->select();
        $appid = $weixin[0]['appid'];
        $secret = $weixin[0]['appsecret'];
        //获得openid
        $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
        $weix = file_get_contents($url);//获得网页输出
        $obj=json_decode($weix,true );//解码
        $accesstoken= $obj['access_token'];//网页授权接口调用凭证
        $openid = $obj['openid'];//openid
        //获得用户信息
        $urlname = "https://api.weixin.qq.com/sns/userinfo?access_token=$accesstoken&openid=$openid&lang=zh_CN";
        $weixs = file_get_contents($urlname);
        $objs=json_decode($weixs,true );//解码
        $user['openid'] = $objs['openid'];//openid
        $user['user'] = $objs['nickname'];//微信名称
        $user['province'] = $objs['province'];//用户个人资料填写的省份
        $user['city'] = $objs['city'];//用户个人资料填写的城市
        $user['img'] = $objs['headimgurl'];//头像,用户更换头像时,失效
        //登陆
        if($objs['openid']){
            $users = User::where('openid',$objs['openid'])->value('openid');
            if(empty($users)){
                //第一次
                $user['level_id'] = 1;
                $user['level'] = "普通会员";
                $user['time'] = date('Y-m-d H:i:s');//加入时间
                User::create($user);
                $list = User::where('openid',$objs['openid'])->select();
                $user_id = $list[0]['id'];
                $user_user = $list[0]['user'];
                $openid = $list[0]['openid'];
                $img = $list[0]['img'];
                $url = "http://localhost:8080/#/loginwx?user_id=$user_id&user_user=$user_user&openid=$openid&member=1&img=$img";
                header("Location:".$url);
            }else{
                //已存在用户
                $list = User::where('openid',$objs['openid'])->select();
                //更新图片
                if($list[0]['img'] == $objs['headimgurl']){
    
                }else{
                    $user_img = $objs['headimgurl'];
                    User::where('openid', $objs['openid'])->update(['img' => $user_img]);
                }
                $user_id = $list[0]['id'];
                $user_user = $list[0]['user'];
                $openid = $list[0]['openid'];
                $img = $list[0]['img'];
                $store = Store::where('user_id',$user_id)->select();
                if(empty($store[0]['id'])){
                    $expert = Expert::where('user_id',$user_id)->select();
                    if(empty($expert[0]['id'])){
                        //用户
                        $url = "http://localhost:8080/#/loginwx?user_id=$user_id&user_user=$user_user&openid=$openid&member=1&img=$img";
                        header("Location:".$url);
                    }else{
                        //专家
                        $expert_id = $expert[0]['id'];
                        $region = $expert[0]['region'];//南方。还是北方
                        $expert_name = $expert[0]['name'];//专家姓名
                        $url = "http://localhost:8080/#/loginwx?user_id=$user_id&user_user=$user_user&openid=$openid&member=3&img=$img&expert_id=$expert_id®ion=$region&expert_name=$expert_name";
                        header("Location:".$url);
                    }
                }else{
                    //加盟店或省代
                    $store_id = $store[0]['id'];
                    $store_level = $store[0]['level'];//门店级别,是省代,还是门店
                    $store_user = $store[0]['user'];//门店名称
                    $url = "http://localhost:8080/#/loginwx?user_id=$user_id&user_user=$user_user&openid=$openid&member=2&img=$img&store_id=$store_id&store_level=$store_level&store_user=$store_user";
                    header("Location:".$url);
                }
            }
        }
    }
    
    //判断用户存在不存在,级别是否变动
    public function weixinpd(Request $request){
        $id = $request->get('id');
        $jib = $request->get('jib');
        if($jib == 1){
            $list = User::where('id',$id)->select();
            $store = Store::where('user_id',$id)->select();
            $expert = Expert::where('user_id',$id)->select();
            if(empty($store[0]['id'])){
    
            }else{
                return json(1);
            }
            if(empty($expert[0]['id'])){
    
            }else{
                return json(1);
            }
            if(empty($list[0]['id'])){
                return json(1);
            }else{
                return json(2);
            }
        }
        if($jib == 2){
            $store = Store::where('id',$id)->select();
            $user_id = $request->get('user_id');
            $store_level = $request->get('store_level');
            if(empty($store[0]['id'])){
                return json(1);
            }else{
                if($store[0]['level'] != $store_level){
                    return json(1);
                }
                if($store[0]['user_id'] == $user_id){
                    return json(2);
                }else{
                    return json(1);
                }
            }
        }
        if($jib == 3){
            $user_id = $request->get('user_id');
            $expert = Expert::where('id',$id)->select();
            if(empty($expert[0]['id'])){
                return json(1);
            }else{
                if($expert[0]['user_id'] == $user_id){
                    return json(2);
                }else{
                    return json(1);
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155

    原生连接数据库mysql

    // 创建连接
        $conn = new mysqli($servername, $username, $password,'sql_322_zgh_iotc');
        // 检测连接
        if ($conn->connect_error) {
            die("连接失败: " . $conn->connect_error);
        }
        $sql = "update `ims_ewei_shop_order` set status=2,mercdttm='{$MercDtTm}',acqssn='{$AcqSsn}',settdate='{$SettDate}' where termtsn='{$TermSsn}'";
    //    echo $sql;
        $res = mysqli_query($conn,$sql);
        mysqli_affected_rows($conn);
        mysqli_close($conn);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    数组降序,升序

    $guys = array(
        array('name'=>'jake', 'score'=>80, 'grade' =>'A'),
        array('name'=>'jina', 'score'=>70, 'grade'=>'A'),
        array('name'=>'john', 'score'=>70, 'grade' =>'A'),
        array('name'=>'ben', 'score'=>20, 'grade'=>'B')
    );
    //例如我们想按成绩倒序排列,如果成绩相同就按名字的升序排列。*
    //这时我们就需要根据$guys的顺序多弄两个数组出来:*
    $scores = array(80,70,70,20);
    $names = array('jake','jina','john','ben');
    //然后,排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
    array_multisort($scores, SORT_DESC, $names, $guys);
    
    //测试成功
    $list = 二维数组;
    $scores = array();
    $names = array();
    foreach ($list as $key=>$it){
    	$scores[$key] =  $it['mobile'];
    	$names[$key] = $it['id'];
    } 
    array_multisort($scores, SORT_DESC, $names, $list);
    直接输出$list就可以
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    二维数组转一维数组,转字符串

    //$list1是二维数组
    $array = array_column($list1, 'jurisdiction_id');//转一维
    $implode = implode(",",$array);//转字符串逗号隔开
    
    • 1
    • 2
    • 3

    文件锁定一个一个来

    $file = 'static/temp.txt';//文件路径
    $fp = fopen($file,'a');//打开文件
    //排队一个一个来,设定
    if(flock($fp,LOCK_EX)){
        for($i = 0;$i < 5;$i++)
        {
            fwrite($fp, "11111111n");
            sleep(1);
        }
        flock($fp,LOCK_UN);//释放设定
    }
    fclose($fp);//关闭文件,释放
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    下载phpexcel操作

    tp6安装phpexcel,进入这个项目运行
    composer require phpoffice/phpexcel
    
    读取excel文件内容保存数据库
    引入use PHPExcel_IOFactory;
    			//$path1路径
    			$objPHPExcel = PHPExcel_IOFactory::load($path1);
                $sheet = $objPHPExcel->getSheet(0);
                $highestRow = $sheet->getHighestRow(); // 取得总行数
                $highestColumn = $sheet->getHighestColumn(); // 取得总列数
                $k = 0;
                $info = array();
                $ids = 0;
                for($j=1;$j<=$highestRow;$j++)
                {
                    $a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A列的值
                    $b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B列的值
                    $info[$ids]['a'] = $a;
                    $info[$ids]['b'] = $b;
                    $ids++;
                }
                return json($info);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    数组合并array_merge

    $sfx = Db::query("select id,name as label from cdj_pindex_house_charge where pindex_id=$id and type=$type and fixed=2");
            $sfx1 = Db::query("select company_id from cdj_pindex where id=$id");
            $cid = $sfx1[0]['company_id'];
            $sfx2 = Db::query("select id,name as label from cdj_pindex_house_charge where company_id=$cid and type=$type and fixed=1");
            
    $sfx = array_merge($sfx,$sfx2);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    获得一年12月

    $yuef = [];
    $currentTime = time();
    $cyear = floor(date("Y",$currentTime));
    $cMonth = floor(date("1",$currentTime));
    for($i=0;$i<12;$i++){
        $nMonth = $cMonth+$i;
        $cyear = $nMonth == 0 ? ($cyear-1) : $cyear;//年
        $nMonth = $nMonth <= 0 ? 12+$nMonth : $nMonth;//月
        $date = $cyear."-".$nMonth."-1";
        $firstday = date('Y-m-01', strtotime($date));//当月第一天
        $lastday = date('Y-m-t', strtotime($date));//当月最后阳台
        $string = $cyear."年".$nMonth."月".$firstday."日";
        $string1 = $cyear."年".$nMonth."月".$lastday."日";
        $yuef[]=[$string,$string1];
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    域名将反斜杆转为正斜杠

    将反斜杆转为正斜杠
    str_replace("\\",'/',$info->getSaveName()), *//将反斜杆转为正斜杠*
    
    • 1
    • 2

    获得域名后面的路由

    $url = parse_url($request->baseUrl());
    
    • 1

    门面

    userList['company_id'];//组织
            //$listLog['name'] = $request->userList['user'];//登录账号
            //$listLog['caozuo'] = "架构";//操作类型
            //$listLog['caozuoxiangqin'] = "$baoc"."收费项,名称:".$dates["name"].",id:".$id.$idc;//操作内容
            //Facades::log($listLog);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    一维数组合并,号隔开

    $userJArr = implode(',',$userJArr);
    逗号分割
    $list[0]['pindex_id'] = explode(",",$pindex_id);
    获得一维数组长度
    count($length);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    url反斜杠转正斜杠

    $date['carousel'] = str_replace("\\",'/',$date['carousel']);
    
    • 1

    视图

     安装
     composer require topthink/think-view
    
     使用
     public function index()
     {
         View::assign([
             'name'  => 'ThinkPHP',
             'email' => 'thinkphp@qq.com'
         ]);
         return View::fetch('index');
     }
     
     在view新建
     index/index.html
     
     模板使用
     新建common/haeder.html
     在index中引入
     {include file="common/haeder"/}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    面试:各种热修复框架对比
    根据表名动态获取数据
    《数据库系统概念》-01 初级SQL,基础SQL语句
    使用 Dockerfile 构建生产环境镜像
    可解释机器学习- InterpretML的使用|interpretable machine learning- InterpretML tutorial
    这两天遇见的一些问题与注意事项
    【概率论与数理统计】【线性代数】计算机保研复习
    Git说明
    ROS学习——Gazebo中搭建模型并显示
    每日三题 8.17
  • 原文地址:https://blog.csdn.net/qq_34631220/article/details/128171964