自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 微信小程序封装request及其token刷新

以TP6为例在util文件夹建立api.js文件const domain = "http://你的测试域名/";//导出的类名export default class Api { req(url, data = '', method = "get") { //判断是否需要刷新token if (wx.getStorageSync('token') && Date.parse(new Date()) > wx.getStorageSync('expireTim

2021-09-08 16:40:23 847 1

原创 Redis 数据持久化的方案的实现

一、需要了解的基础1、Redis实现数据持久化的两种实现方式:RDB:指定的时间间隔内保存数据快照AOF:先把命令追加到操作日志的尾部,保存所有的历史操作AOF持久化方案先把命令追加到操作日志的尾部,保存所有的历史操作。1、相比于RDB持久化方案的优点:(1)数据非常完整,故障恢复丢失数据少(2)可对历史操作进行处理2、如何开启AOF持久化模式将redis.conf 配置文件中的appendonly 参数改为yes 后,则redis开始启动AOF数据持久化模式3、开启AOF同步模式后

2021-08-27 21:26:36 186

原创 微信小程序 实现地图

跳转获取经纬度wxml<map id=myMap" bindtap="map" style="width: 100%; height: 300px;"markers="{{markers}}" latitude="{{latitude}}" longitude="{{longitude}}"></map>js// pages/map/map.jsPage({ /** * 页面的初始数据 */ data: { latitude:

2021-08-20 21:23:17 837

原创 菜鸟支付宝沙箱模拟支付

这里有三个文件很重要很关键,一个是notify_url.php, 一个是return_url.php, 另一个是config.php,他们分别是支付结果异步通知,支付结果同步通知,和配置文件。通知文件是来写业务逻辑的,而配置文件是来写配置参数的。

2021-08-17 16:55:05 335

原创 xdebug使用教程

为什么需要Debugger?很多PHP程序员调试使用echo、print_r()、var_dump()、printf()等,其实对 于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以 看出来(当然可能还需要使用一些时间函数)。那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓。什么是Xdebug?Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具

2021-08-16 20:51:39 316 2

原创 容联云 PHP 实现短信发送验证码

文档传送门、注册号账号 有免费的短信可以用添加测试账号下载sdkhttps://github.com/cloopen/php-sms-sdk解压到PHP框架内引入 sdk 到index入口文件封装代码 调用即可用 public static function rongs($to,$datas,$tempId) { //主帐号 $accountSid = '8aaf07087766666666baf4800e6b'; //主帐号T

2021-08-13 21:30:46 189

原创 layui的分页实例详解

layui的分页实例详解layui分页官方地址:https://www.layui.com/doc/modules/laypage.html数据分页接口如下写法 public function show(Request $request) { $length=intval($request->get("limit")); $start=(intval($request->get("page"))-1)*$length; $data =

2021-08-12 20:06:49 336

原创 x-admin 菜单栏 简单开发

效果图数据库数据CREATE TABLE `menu` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `pid` int(11) DEFAULT NULL, `controller` varchar(255) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `delete_time` datetime D

2021-08-12 18:05:23 425

原创 thinkphp6.0 数据库迁移migration与数据填充Faker的使用

数据库迁移工具使用数据库迁移工具可以将数据库结构和数据很容易的在不同的数据库之间管理迁移。在以前,为了实现“程序安装”,你可能会导出一份sql文件,安装时,用程序解析这个sql文件,执行里面的语句,这样做有诸多的局限性,但现在使用数据库迁移工具,你可使用一个强大的类库API来创建数据库结构和记录,并且可以容易的安装到Mysql,sqlite,sqlserver等数据库。安装composer require topthink/think-migration创建迁移工具文件//执行命令,创建一

2021-08-12 17:58:23 721

原创 TP6.0 一对一模型关联 hasOne

数据表格式 (不规范 规范我就不写了)创建对应的模型层hasOne(‘关联模型类名’, ‘外键’, ‘主键’); public function User() { $data = Sale::with('User')->select();// dd($data->toArray());// 测试关联方法都采用预载入查询 halt($data->toArray()); }...

2021-08-11 22:02:25 498

原创 一台服务器两个mysql实例搭建以及主从同步备份

Mysql主从同步原理:当master服务器上的数据发生改变时(增、删、改),则将其改变写入二进制binlog日志中;slave服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开启一个I/O 线程请求master二进制事件,同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从库本地的中继日志中,从库(从节点)将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致,最后IO线程和SQL线程将进入睡眠状态,等待

2021-08-09 14:39:55 721

原创 PHP 接口恶意访问 限制接口访问次数

一.在接口中判断访问来源,例如php使用HTTP_REFERER来判断来源,如果是直接访问接口的请求不予处理,如果是从网页调用的请求再做处理。二通过redis限制用户一分钟内访问次数$key = 'user:1:api_count';//限制次数为10 $limit = 10;$check = $redis->exists($key);if($check){$redis->incr($key);$count = $redis->get($key);if($count

2021-08-09 11:18:48 1612 2

原创 layui大文件分成很多小文件上传腾讯云

对于很大的文件比如几百M的音频视频 软件上传,如果直接上传 服务器,经常处理不了。可以利用layui,在客户端先把大文件切割成小文件 一个一个上传,然后服务器端,再组合成一个大文件。后台代码 public function bigUpload(Request $request) { $params = $request->param(); $status = 1; $fname = sprintf('tmp/%s.%s', $params

2021-08-09 11:13:34 483

原创 vue轮播图

vue轮播图 实现<div class="layui-container" id="app"> <div class="layui-row"> <div class="layui-col-md7" > <div v-for="(item,index) in arr "> <img :src="item.pic" v-if="index==current">

2021-08-05 21:35:41 182

原创 vue前台商城

图片自己引入的这只是练习 一下<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>购物清单</title> <!-- 引入vue --> <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> <style type

2021-07-30 22:02:10 282

原创 PHP 操作PDO 生成静态页面

防spl注入添加<?php $name = $_POST['name']; $text = $_POST['text']; $static = $_POST['static']; $dbh = new \PDO("mysql:host=127.0.0.1;dbname=my6","root","root"); if (!empty($name)) { # code... $sql = "INSERT INTO `article` (`ti

2021-07-30 21:46:58 133

原创 2021年7月面试记录

PHP7新特性1.类型的声明。可以使用字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool),来声明函数的参数类型与函数返回值。标量类型声明 有两种模式: 强制 (默认) 和 严格模式。declare(strict_types=1),必须放在文件的第一行执行代码,当前文件有效!2.set_exception_handler() 不再保证收到的一定是 Exception 对象在 PHP 7 中,很多致命错误以及可恢复的致命错误,都被转换为异常来处理了

2021-07-26 21:38:50 84

原创 微信公众号开发——服务器配置(二)

看不懂建议接上一个看实现框架操作上传框架到宝塔 利用FTP 快速开发框架上传宝塔新建文件位置新建域名绑定到指定位置 以上不会 别学PHP了 学不会 前期工作1 微信开发账号密码必得config 新建setting 用来封装 token app_id 等等2.对象转数组 封装在公共方法里面 封装route 小改一下3 代码实现多了点 功能互相调用 简单明了<?php//declare (strict_types = 1);namespa

2021-07-23 22:04:58 217

原创 thinkphp6 用PHPMailer实现邮箱发送功能

下载PHPMailer包composer require phpmailer/phpmailer<?phpnamespace tool;use PHPMailer\PHPMailer\PHPMailer; class SendMail{ public function sendMail($to) { $toemail = 'xxx';//定义收件人的邮箱 $mail = new PHPMailer(); $

2021-07-23 18:07:27 390

原创 PhpStorm 设置自动FTP同步文件

1、添加一个FTP服务器① 首先在这里打开添加FTP的页面,步骤,工具栏 -> Tools -> Deployment -> Configuration 。②添加服务器③ 填写服务器信息④最后设置几个目录路径,OK即可完成FTP服务器的添加。2、设置FTP自动上传② 设置为Always或On explicit save action,最后OK即可。FTP 配置 这里用的是宝塔用户名 密码 粘贴复制 到PhpStorm 即可 报错 可以试下改端口号

2021-07-23 17:51:41 1630

原创 Laravel-Admin 增删改查快速上手方法(新手速来,大神绕道)

Laravel-Admin官方文档aravel-admin是一个基于laravel的后台管理开发框架,能帮助你使用很少的时间和代码量开发出功能完备的管理后台,另外它作为一个三方包,可以和框架内其它项目并行开发,真正做到前后台开发分离。laravel-admin 是一个可以快速帮你构建后台管理的工具,它提供的页面组件和表单元素等功能,能帮助你使用很少的代码就实现功能完善的后台管理功能。注意当前版本(v1.7.*)需要安装PHP 7+和Laravel 5.5+|6.x完成安装1 首先确保安装好了la

2021-07-23 11:49:42 1111

原创 微信公众号开发——服务器配置

一、前提1、购买一台云服务器域名解析这里用的宝塔服务创建域名 绑定到指定的目录wx.php 代码如下<?php /** * wechat php test */ //define your token define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class

2021-07-21 21:58:20 2729 1

原创 thinkphp6 使用 jwt 生成 token 中间件验证token

jwt、tp中间件听起来好高大上的样子。花了两天时间阅读文档和看视频,终于懂了点皮毛,在这里记录一下。以下两个问题需要搞懂1 jwt 是什么 ?JWT 全称 Json Web token,是为了在网络应用环境间传递声明而执行的一种基于json的开放标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者之间传递被认证的用户身份信息,以便于从服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息

2021-07-21 20:34:52 238

原创 php laravel中jwt的使用

首先是理论,随后实现JWT 出场JWT 还有个好处,那就是你可以不用在服务端存储认证信息(比如 token),完全由客户端提供,服务端只要根据 JWT 自身提供的解密算法就可以验证用户合法性,而且这个过程是安全的。JWT 数据结构JWT 最后的形式就是个字符串,它由头部、载荷与签名这三部分组成,中间以「.」分隔。1.composer安装composer require laravel/passport=~9.02.具体实现步骤最好搭配auth()登录一起使用 但需要注意 auth的登录密

2021-07-21 18:28:42 296

原创 二分查找法 冒泡排序

target —— 要查找的值

2021-07-20 21:00:34 142

原创 解决php时间戳渲染问题

渲染出的时间戳:解决方法:模型层中加入方法public function serializeDate(DateTimeInterface $dateTime){ return $dateTime->format('Y-m-d H:i:s');}解决!!

2021-07-20 20:51:29 152

原创 微信小程序二次封装request网异常提示

全是菜鸟教程,粘就行,或者有自己的想法小程序里进入utils文件夹 我在里面新建了一个叫Http.js的文件 并进入//正好定义一个公共请求的接口名,如下const host="http://www.laravel.wechat.com/api/";//关于接口健全的token,也可以有自己的想法(可以不写)const token=wx.getStorageSync('token')//开始封装requestfunction request(url,data,method){

2021-07-20 20:50:15 100

原创 反转字符串(非函数) 菜鸟

首先定义一个字符串$str='123456789';再定义字符串长度$len=0;再定义一个新的数组$str2=[];先获取字符串长度for($i=0;true;$i++){ if($str{$i}==null){ break } $len++}获得长度后循环字符串for($i=0;$i<$len;$i++){ $str2.=$str{$len-$i-1}}为什么拆开写这样才符合菜鸟手册,一步一讲解...

2021-07-20 20:48:29 104

原创 laravel七牛云文件上传

Composer 安装composer require zgldh/qiniu-laravel-storageconfig/app.php 中注册服务提供者:zgldh\QiniuStorage\QiniuFilesystemServiceProvider::classconfig/filesystems.php 里的 disks 中新增七牛配置:'qiniu' => [ 'driver' => 'qiniu', 'domains' => [

2021-07-20 20:46:33 152

转载 手把手教你在tp6中实现毫秒级定时任务功能

导入 workermancomposer require workerman/workerman创建 Timer 命令php think make:command Timer实现 Timerclass Timer extends Command{ /** * @var int */ protected $timer; /** * @var int|float */ //如需更改时间 请更改 interval 以秒为单

2021-07-09 11:40:15 1793

转载 php 层级递归

public function treeLevel(array $data, int $pid = 0, string $html = '--', int $level = 0) { static $arr = []; foreach ($data as $val) { if ($pid == $val['pid']) { // 重复一个字符多少次 $val['html'] = str_.

2021-07-09 11:10:21 121

原创 mysq基础知识

年月份

2021-07-06 22:40:11 75

原创 TP6 基础知识

tp6 门面模式具体看官方手册门面模式 这里只是提供一个代码顺序流程说的直白一点,Facade功能可以让类无需实例化而直接进行静态方式调用。tp 6 多应用路由写法

2021-07-06 22:08:58 613

原创 PHP操作es实现CURD

es 简单搜索PHP操作elastic在 composer.json 文件中引入 elasticsearch-php:{ "require": "elasticsearch/elasticsearch": "~6.0" }composer update在项目中引入自动加载文件(如果还没引入),并且实例化一个客户端require 'vendor/autoload.php';use Elasticsearch\ClientBuilder

2021-05-29 21:21:03 1612 6

原创 使用php实现swoole单人入门在线聊天室

声明:今天又进步了 继承上次的代码 该聊天室目前只有一对多,一对一的聊天功能,另外,因为没有使用到mysql,所以还存在比较多的缺陷地方,但知道原理就差不多了,这里主要分享下swoole简易的聊天室制作思路。以下是前端代码,。。。非正吖八斤的前端,代码水平有限<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewpo...

2021-04-12 20:58:13 555 5

原创 用PHP+swoole+html前台页面做简单的聊天室

最近自学了swoole,想做点东西试试看,刚好看到可以简单做个聊天室,于是自己研究研究搞了一个。php文件<?php//创建WebSocket Server对象,监听0.0.0.0:9502端口$ws = new Swoole\WebSocket\Server('0.0.0.0', 9502);//监听WebSocket连接打开事件$ws->on('Open', function ($ws, $request) { $ws->push($re...

2021-04-06 14:06:05 369 2

空空如也

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

TA关注的人

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