自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 PHPCMS手机访问,调用手机模板

PHPCMS手机访问,调用手机模板

2022-12-01 11:33:32 327 1

原创 thinkphp6 mysql字段支持表情

数据库表字段三个的字符集设置为:utf8mb4排序规则设置为:utf8mb4_unicode_cithinkphp6中 .env 设置CHARSET = utf8mb4例子:[DATABASE]TYPE = mysqlHOSTNAME = 127.0.0.1DATABASE =USERNAME =PASSWORD =HOSTPORT = 3306CHARSET = utf8mb4DEBUG = true...

2022-03-10 23:29:42 1121

原创 基于thinkphp的php客服系统

首先先搭建系统,搭建完系统后开始配置客服系统信息,需要源码的朋友可以联系QQ:785029034,或者添加微信:v_7850,验证写 php客服系统1.添加或者注册商户2.有了商户之后,接下来添加客服分组,输入商户的用户名 和 密码 、验证码,点击登录进入商户后台点击 分组管理 --> 分组列表3.添加客服点击 客服管理 --> 客服列表 --> 添加4.接入网站接入比较简单,引入一段js,并启动即可5.效果图...

2021-09-06 01:00:23 610

原创 搭建本地服务器,并配置https

1.登录阿里云->SSL证书->免费证书->创建证书,选择“手工DNS验证”,申请好后把证书下载下来。2.把域名解析至本地ip3.配置SSL4.修改https默认443端口,改为78505.进入路由器创建端口映射(外网7850端口映射本地https 7850端口)6.直接访问https://域名:7850即可...

2021-08-11 20:48:38 2075 2

原创 php 使用phpoffice/phpspreadsheet 导出Excel文件

1、composer安装:composer require phpoffice/phpspreadsheet2.构建方法/** * 导出excel表 * $data:要导出excel表的数据,接受一个二维数组 * $name:excel表的表名 * $head:excel表的表头,接受一个一维数组 * $key:$data中对应表头的键的数组,接受一个一维数组 * 备注:此函数缺点是,表头(对应列数)不能超过26; *循环不够灵活,一个单元格中不方便存放两个数据库字段的值 */fu

2021-08-02 01:06:28 461

原创 php 使用 谷歌验证器

1.首先使用composer安装:composer require "phpgangsta/googleauthenticator:dev-master"2.安装好后,在代码里生成密钥$g = new \PHPGangsta_GoogleAuthenticator();$secret = $g->createSecret();$url = $g->getQRCodeGoogleUrl('**登录',$secret);//标题,密钥echo '<div>secret密钥:

2021-07-14 14:15:07 942

原创 thinkphp6 中间件

中间件的主要用于拦截和过滤 HTTP 请求,并进行相应处理这些请求的功能可以是 URL 重定向、权限验证等等通过命令行模式,在应用目录下生成一个中间件文件和文件夹;php think make:middleware Check<?php // 前/后置中间件 public function handle($request, \Closure $next,$param='')//$param可为空,路由传参时接收 { //中间件代码,前置 return $next($reques

2021-07-12 09:58:04 97

原创 thinkphp6 异常处理

<?php //系统输出的异常信息比 PHP 原生的要人性化的多,但需要开启调试模式; //如果想更改异常页面的样式、布局之类的,可以修改这个页面: vendor/topthink/framework/src/tpl/think_exception.tpl //如果想直接换成别的异常页面,可以在 app.php 中进行设置: // 异常页面的模板文件 'exception_tmpl' => app()->getThinkPath() . 'tpl/think_exceptio

2021-07-12 09:54:29 525

原创 thinkphp6 日志处理

日志处理的操作由 Log 类完成,它记录着所有程序中运行的错误记录;在 config 目录下的 log.php 配置文件,用于设置日志信息;在 runtime 目录下后一个 log 文件夹,里面按照日期排好了每月的日志(多应用,则会按照应用目录分类)系统提供了不同日志级别,默认 info 级别,从低到高排列如下:debug/info/notice/warning/error/critical/alert/emergency/sql;<?php Log::record('测试日志!', '

2021-07-12 09:54:17 1978

原创 thinkphp6 服务系统

服务系统,可以将一个类的对象注册到容器中去,方便调用执行;服务的执行优先级较高,在执行主体程序前就已经完成依赖注入;它的作用可以做一些初始化,配置一些参数,扩展插件等等均可;验证码扩展类就使用了服务系统,我们自己创建一个简单的服务;在 common 目录下创建一个 Shut.php 类,这个类是被服务的类;//定义一个属性字段 protected static $name = 'Mr.Lee'; //设置 public static function setName($name) {

2021-07-12 09:44:55 286

原创 thinkphp6 事件

事件和中间件有一点相似,只不过事件更加的精准定位更细腻的业务场景;事件可定义:事件类、事件监听类、事件订阅类;我们先创建一个测试事件的类:TestEvent.php,手动创建一个测试类;<?php public function __construct() { //注册监听器 Event::listen('TestListen', function ($param) { echo '我是监听器,我被触发了!'.$param; }); } public function

2021-07-12 09:44:34 334

原创 thinkphp6 多应用模式

安装扩展composer require topthink/think-multi-app安装后,创建 index 和 admin 两个应用目录文件夹;只要将 controller 和 model 移入即可,修改相应的命名空间;将 view 也增加 index 和 admin 两个应用目录文件夹,移入相应文件夹;默认的应用为 index,在 app.php 修改即可;// 默认应用'default_app' => 'index', // 应用映射(自动多应用模式有效)'app_m

2021-07-12 09:43:53 420

原创 thinkphp6 图像处理

composer 引入;composer require topthink/think-image<?php$image = Image::open('image.png');//创建图像处理对象 //获得了图像处理对象后,可以得到这张图片的各种属性; echo $image->width();//图片宽度 echo $image->height();//图片高度 echo $image->type();//图片类型 echo $image->mime();

2021-07-10 09:56:20 1221 2

原创 thinkphp6 分页

<?php //不管是数据库操作还是模型操作,都使用 paginate()方法来实现; //查找 user 表所有数据,每页显示 5 条 return View::fetch('index', [ 'list' => User::paginate(5) ]); //也可以这样 return View::fetch('index', [ 'list' => User::paginate([ 'list_rows' =&

2021-07-10 09:54:39 466

原创 thinkphp6 验证码

//验证码功能不是系统内置的功能了,需要通过 composer 引入进来composer require topthink/think-captcha //开启 session 方可使用<?php //引入后,模版中,验证一下验证码 <div>{:captcha_img()}</div> //可以点击刷新 <div><img src="{:captcha_src()}" alt="captcha" /></div> //使用助

2021-07-10 09:53:32 135

原创 thinkphp6 上传

<?php $file = Request::file('image');//获取表单的上传数据 $info = Filesystem::putFile('topic', $file);//目录在 runtime/storage/toppic/时间/文件 //如果想更改上传文件的默认配置,在 config/filesystem.php 中配置; 'root' => app()->getRuntimePath() . 'storage', //批量上传 <input

2021-07-10 09:51:58 246

原创 thinkphp6 缓存

系统内置了很多类型的缓存,除了 File,其它均需要结合相关产品;这里主要演示 File 文本缓存,“其它的需要学习相关产品”;配置文件 cache.php 进行缓存配置,默认生成在 runtime/cache 目录;<?php //助手函数的使用:cache(); cache('user', 'Mr.Lee', 3600);//设置缓存 echo cache('user');//输出缓存 cache('user', null);//删除指定缓存 Cache::set('user'

2021-07-10 09:50:45 816

原创 thinkphp6 session和cookie

开启初始化,在中间件文件 middleware.php;\think\middleware\SessionInit::class// Session 初始化<?php //session //助手函数,更加方便操作,如下: session('user', 'Mr.Wang');//赋值 session('?user');//has 判断 session('user', null);//delete 删除 session(null);//清理全部 echo

2021-07-10 09:49:12 341

原创 thinkphp6 视图模板引擎

//安装驱动composer require topthink/think-view<?php //assign()方法,支持通过数组的方式,传递模版变量; //直接通过 fetch()方法的第二参数,直接用数组传递模版变量; return View::fetch('index', [ 'name' => 'Mr.Lee', 'age' => 100, 'haha' => array( 'a' => 1,

2021-07-10 09:46:29 315

原创 thinkphp6 验证器(提交表单等场景用)

<?php //验证器的使用,我们必须先定义它,系统提供了一条命令直接生成想要的类; php think make:validate User//这条命令会自动在应用目录下生成一个 validate 文件夹,并生成 User.php 类; class User extends Validate //自动生成了两个属性:$rule 表示定义规则,$message 表示错误提示信息; protected $rule = [ 'name' => 'require|max:20'

2021-07-10 09:42:20 402

原创 thinkphp6 数据库事务处理和获取器

一.事务处理数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可;事务处理,需要执行多个 SQL 查询,数据是关联恒定的;如果成功一条查询,改变了数据,而后一条失败,则前面的数据回滚;比如:蜡笔小新给路飞 3 快钱,自己-3,对方+3,这时需要事务处理;系统提供了两种事务处理的方式,第一种是自动处理,出错自动回滚;Db::transaction(function () { Db::name('user')->where('id', 19)->save(['price

2021-07-10 09:33:41 376

原创 thinkphp6 数据库的数据集

先忽略

2021-07-10 09:33:17 109

原创 thinkphp6 模型

模型类需要去除表前缀(tp_),采用驼峰式命名,并且首字母大写;tp_user(表名) => Usertp_user_type(表名) => UserType为了减少内存,需要在 config/database.php 开启字段缓存;// 开启字段缓存'fields_cache' => true,如果想全局开启’模型自动时间戳’,在 database.php 中,设置为 true;// 自动写入时间戳字段'auto_timestamp' => true,'aut

2021-07-09 18:04:14 594 2

原创 thinkphp6 路由

<?php//路由的配置文件在 config/route.php //定义文件在 route/app.php//强制路由 'url_route_must' => true, //route.php 里面进行配置 Route::rule('/', 'Index/index'); //route/app.php里面进行设置。//有多种地址的配置规则,具体如下: //静态路由 Route::rule('ad', 'Address/index');

2021-07-09 18:03:35 154

原创 thinkphp6 容器和依赖注入

先略过

2021-07-09 18:03:12 479 1

原创 thinkphp6 门面 Facade

先略过

2021-07-09 18:00:23 339

原创 thinkphp6 数据库高级查询

一.高级查询使用|(OR)或&(AND)来实现 where 条件的高级查询,where 支持多个连缀;$user = Db::name('user') ->where('username|email', 'like', '%xiao%') ->where('price&uid', '>', 0) ->select();//生成的 SQLSELECT * FROM `tp_user` WHERE ( `username` LIKE '%xiao%

2021-07-09 17:59:49 274

原创 thinkphp6 Request请求对象和信息、请求变量、请求类型和HTTP头信息

<?php use think\facade\Request; public function index() { Request::url(); Request::url(true);// 获取完整 URL 地址 包含域名 Request::baseFile();// 获取当前 URL(不含 QUERY_STRING) 不带域名 Request::baseFile(true);// 获取当前 URL(不含 QUERY_STRING) 包含域名 Request::r

2021-07-09 17:59:26 797

原创 thinkphp6 伪静态、URL地址栏的数据传参、请求缓存(仅对 GET 请求有效)

<?php //伪静态 //可以通过 route.php 修改伪静态的后缀,比如修改成 shtml、xml 等; 'url_html_suffix' => 'html',//单个 'url_html_suffix' => 'shtml|xml|pdf',//多个 'url_html_suffix' => false,//关闭伪静态 //路由参数绑定 //例子 public function get($id=0)//给个默认值,当参数不存在的时候不报错 {

2021-07-09 17:58:56 528

原创 thinkphp6 响应输出和重定向

<?php //响应输出,有好几种:包括 return、json()和 view()等等; return json($data)->code(202)->header(['Cache-control' => 'no-cache,must-revalidate']);//设置状态码,以及设置 header()头文件信息; //重定向 return redirect('http://www.baidu.com');//站外 return redirect('ds/5');/

2021-07-09 17:58:42 483

原创 thinkphp6 数据库 聚合.原生.子查询

一. 聚合查询使用 count()方法,可以求出所查询数据的数量;Db::name('user')->count();count()可设置指定 id,比如有空值(Null)的 uid,不会计算数量;Db::name('user')->count('uid');使用 max()方法,求出所查询数据字段的最大值;Db::name('user')->max('price');如果 max()方法,求出的值不是数值,则通过第二参数强制转换;Db::name(

2021-07-09 09:21:27 366

原创 thinkphp6 数据库链式查询

一. where表达式查询,就是 where()方法的基础查询方式;Db::name('user')->where('id', '>', 70)->select();关联数组查询,通过键值对来数组键值对匹配的查询方式$user = Db::name('user')->where( [ 'gender' => '男', 'price' => 100 //'price' => [60,70,80] ] )-&g

2021-07-09 09:21:08 221

原创 thinkphp6 数据库时间查询

使用>、<、>=、<=来筛选匹配时间的数据;Db::name('user')->where('create_time', '>', '2018-1-1')->select();可以使用 between 关键字来设置时间的区间;Db::name('user')->where('create_time', 'between', ['2018-1-1','2019-12-31'])->select();Db::name('user')-&gt.

2021-07-08 12:04:45 525

原创 thinphp6 数据库查询表达式

一. 比较查询在查询数据进行筛选时,采用 where()方法,比如 id=80;Db::name('user')->where('id', 80)->find();Db::name('user')->where('id','=',80)->find();使用<>(不等于)、>、<、>=、<=可以筛选出各种符合比较值的数据列表;Db::name('user')->where('id','<>',80)->selec

2021-07-08 11:59:20 107

原创 thinkphp6 数据库修改删除

一.数据修改1.使用 update()方法来修改数据,修改成功返回影响行数,没有修改返回 0;$data = [ 'name' => '李白'];return Db::name('user')->where('id', 1)->update($data);2.如果修改数据包含了主键信息,比如 id,那么可以省略掉 where 条件;$data = [ 'id' => 1, 'name' => '阿雄'];return Db::name('user')-&

2021-07-08 11:37:20 259

原创 thinkphp6 数据库数据新增

使用 insert()方法可以向数据表添加一条数据,更多的字段采用默认;$data = [ 'name' => '辉夜', 'age' => '123',];Db::name('user')->insert($data)如果新增成功,insert()方法会返回一个 1 值;如果添加一个不存在的字段数据,会抛出一个异常 Exception;如果想强行新增抛弃不存在的字段数据,则使用 strick(false)方法,忽略异常;Db::name('user')->s.

2021-07-08 11:26:07 240

原创 thinkphp6 数据库数据查询

一1.Db::table()中 table 必须指定完整数据表(包括前缀)2.如果希望只查询一条数据,可以使用 find()方法,需指定 where 条件Db::table('tp_user')->where('id', 27)->find()3.Db::getLastSql()方法,可以得到最近一条 SQL 查询的原生语句4.使用 findOrFail()方法同样可以查询一条数据,在没有数据时抛出一个异常;Db::table('tp_user')->where('id',

2021-07-08 11:20:12 804

原创 thinkphp6 连接数据库

在config文件夹下的 database.php 设置数据库连接信息;本地测试,优先采用.env 的配置信息。和 database 配置对应上即可;

2021-07-08 11:10:04 803

原创 thinkphp6 控制器定义

改变系统默认的控制器文件目录(controller),在 config文件夹下route.php文件配置:'controller_layer' => 'controller123',类名和文件名大小写保持一致,并采用驼峰式(首字母大写);namespace app\controller;class Test {...} //这个是类如果创建的是双字母组合,比如 class HelloWorld,访问 URL 如下:http://url/helloworldhttp:/..

2021-07-08 11:06:39 234

原创 thinkphp6 获取.env文件以及config文件夹app.php的值

在本地测试时.env 优先于 config文件夹下的配置,部署环境中,.env 会被忽略,自动切换到 config 配置对于.env文件,比如[DATABASE]下的HOSTNAME=127.0.0.1,获取方式如下:use think\facade\Env;return Env::get('database.hostname');对于config文件夹下的配置,比如(database.php)下的hostname,获取方式如下:use think\facade\Config;..

2021-07-08 11:03:18 2243

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除