自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker-compose重新部署之前的环境和项目

docker-compose 部署php、MySQL、redis、elasticsearch、rabbitmq

2022-10-05 18:19:19 2604

原创 PHP本地项目及docker项目的debug安装和vscode、phpstorm中具体使用教程

php xdebug的详细教程

2022-10-05 12:19:07 1773

原创 简单的支付宝沙箱支付接入以及电脑网站支付示例

支付宝沙箱支付接入流程1、首先进入支付宝开放平台申请个人开发者账号2、创建应用,添加电脑网站支付能力这里我申请的是支付宝网站支付功能。3、进入支付宝沙箱环境设置接口加签方式我这里设置的是自定义密钥(RSA2)文档:https://opendocs.alipay.com/common/02kipl这里我们需要获取我们需要的秘钥:应用公钥、支付宝公钥,还需要记住生成应用公钥的时候我们自己保存的应用私钥,这三个参数,其中应用公钥、支付宝公钥都可以在沙箱账号中查看,应用私钥是自己有的。其他

2022-02-09 15:59:31 1702

原创 SeasLog基本操作,封装到codeIgniter框架中

基本操作日志文件存储地址log记录目录 = basePath / logger / {fileName}.loglog文件名,以 `年月日` 分文件,如今天是2021年01月18日期,那么 `{fileName}` = `20210118`;//basePath通过setBasePath设置,未设置为php.ini中设置的根目录//basePath通过setLogger设置,未设置为php.ini中设置的Logger目录常用操作函数SeasLog::setBasePath("/var/www

2022-01-25 21:56:30 533

原创 PHP SeasLog日志扩展Linux系统的安装与配置

1、安装SeasLogwget https://github.com/Neeke/SeasLog/archive/master.zip #下载unzip master #解压phpize #是用来扩展php扩展模块./configure --with-php-config=/usr/bin/php-config #Configure脚本配置 这里的/usr/bin/php-config为本机的位置,可以使用whereis php-confing找到make && make test

2022-01-25 18:07:41 1034

原创 linux下部署elasticsearch和kibana

linux下部署elasticsearch首先需要下载elasticsearch文件,可以在官网下载需要的版本我这里使用的是7.15.2版本将下载好的压缩文件上传到linux服务器上,进行解压操作 tar -zxvf elasticsearch-7.15.2.tar.gz解压完成后需要进行配置因为es是java语言编写的所以本机必须有java环境java -version没有输出的话需要安装java环境1、创建用户首先必须新建一个用户来运行elasticsearch服务,elastic

2021-12-21 11:53:02 1624

原创 Elasticsearch实例操作

前提条件本机运行了elasticsearch服务安装Elasticsearch php插件composer require elasticsearch/elasticsearch基本的新增、删除索引//加载Elasticsearch php插件require "vendor/autoload.php";use \Elasticsearch\ClientBuilder;//本机host$hosts = [ '127.0.0.1:9200'];//连接$client = Cl

2021-12-20 16:23:16 1924

原创 php爬取文章、图片实例

php使用正则表达式进行简单的数据获取/** * 发起curl网络请求 */function http_request(string $url, $data = [], array $header = []) { $ret = ''; // 1、初始化 $ch = curl_init(); // 2、相关配置 # 设置请求的URL地址 curl_setopt($ch, CURLOPT_URL, $url); # 设置一下执行成功后不直接返回到客

2021-12-09 11:54:09 1334

原创 gitee三方登录

gitee三方登录步骤1、先在gitee设置的第三方应用上创建应用,编写回调地址,和网址主页,生成Client ID 和 Client Secret2、在点击用户授权之后,会在回调地址栏上出现一个code获取到code,请求 https://gitee.com/oauth/token 地址,post请求, ‘https://gitee.com/oauth/token?grant_type=authorization_code&’ . $code . ‘&client_id=’ . $c

2021-11-23 11:53:12 2903

原创 Jwt的使用

Jwt的使用在用户登录时,登录验证成功,使用Jwt生成该user_id的token,然后将该token返回给客户端,客户端存储起来,每次请求服务端时,将用户的token放在请求头中发送到服务端,服务端对该token做验证。项目根目录使用composer安装jwt工具类composer require lcobucci/jwt 3.3service层封装Jwt功能方法。<?php/** * Created by PhpStorm. * User: wyq * Date: 2021/1

2021-11-23 11:51:04 589

原创 模拟用户参加活动脚本

​ 因为各个活动没有数据做支持,一个一个试又比较麻烦,所以有些活动,我使用了一些数据来进行模拟,这样可以比较快的模拟多用户参加活动。​ 这里可以使用crontab写定时任务,但是我使用的是虚拟机,不是一直开机状态,不能保证脚本一定执行,所以我每次是直接在虚拟机上执行脚本//执行脚本增加一个用户,模拟参加盲盒交友活动/usr/bin/php /var/www/html/iblog/index.php job/Job/job//虚拟用户参加骰子活动/usr/bin/php /var/www

2021-11-17 23:15:20 844

原创 ci框架php+redis实现基础的盲盒交友

盲盒交友的逻辑:​ ci框架实现,集成在博客系统之中。​ 用户每天有一次免费抽取纸条和一次免费放入纸条的机会。机会消耗完之后需要消耗10金币来进行放入纸条和抽取纸条操作,盲盒分为两种,一种存男生放入的纸条,另一种存女生放入的纸条,纸条中有一些可以填写的基本信息。sqlCREATE TABLE `blind_friend` ( `id` int NOT NULL AUTO_INCREMENT, `uid` int NOT NULL COMMENT '用户id', `type` tiny

2021-11-17 15:46:50 758

原创 php+redis 盲盒字符兑换道具

概述:​ 这里我新增了道具表、背包道具表和背包道具流水表是为了字符兑换活动可以兑换一些可以使用的道具到我的背包中,获得道具或者消耗道具时,在背包道具流水表中都有记录。盲盒字符兑换流水表是为了将用户兑换各种奖励记录下来,因为每种道具的兑换是有限制的。​ 字符兑换道具基本逻辑:定义可以兑换的道具的id、num、以及需要的字符index数组,在兑换道具时需要传递用户id和需要兑换的道具的index,在兑换操作时具体操作​ 1、获得字符可兑换的道具数组,通过传递的index获取到当前兑换的道具,在从re

2021-11-11 18:21:15 623

原创 php+redis盲盒活动

这里实现最基础的功能,获取盲盒直接掉接口就可以获取controller层代码 //获取盲盒操作 public function getBlindBox() { $data = $this->input->post(); if (empty($data['uid']) || empty($data['num'])){ fail(400,'缺少参数!'); } $this->Activi

2021-11-04 23:20:06 1003

原创 活动投骰子

代码git地址:https://gitee.com/wyqgg/iblog.git描述首先获得骰子​ 每天(首次登录、签到)之后都可以获得一个骰子掷骰子逻辑获取前进步数(每次使用全部的骰子,每个骰子可以前进1-6步),每个步数都有奖励(前进一步可以获得10积分,每到达特定步数可以获得指定金币奖励)​实现:首先设置redis缓存key键类型过期时间描述date(‘Y-m-d’, time()) . “__” . $uid ."_Login_dice"string

2021-10-30 19:20:55 248

原创 手机号码绑定操作

手机号码绑定操作这里我实现了一个通过发送短信绑定手机号的功能,这里主要的实现与之前发送邮箱注册差别不大,比较大的区别就是发送短信需要发送curl请求api地址,来让第三方发送我们写好的验证码。具体发送的逻辑代码差别不大,就是在发送验证码时使用redis上锁60s,在60s时间中,若验证码成功验证则将锁删除。这样就可以实现绑定手机号的操作。控制器代码 /* * 用户通过手机号发送短信 */ public function bindPhone() {

2021-10-12 22:40:43 2926

原创 php+redis+mysql关注的实现

php+redis+mysql关注的实现这个博客系统的项目我放在gitee上面,目前我还在开发中,我将地址放到下面https://gitee.com/wyqgg/iblog使用git克隆项目git clone https://gitee.com/wyqgg/iblog.git1、使用zadd向我的关注有序集合中添加元素zadd my_id."follow" time() follow_id //my_id为关注者id 、time() 为当前关注的时间戳、 follow_id为被关注者id

2021-10-12 22:20:40 753

原创 php+redis实现点赞功能

php+redis实现点赞功能首先设计redis1、设计一个set结构的article存储被点赞的article_id2、设计set结构的article_like_{article_id}里面存储点赞该文章的用户3、设计一个hash结构的article_user_like_{article_id}__{user_id}存储用户点赞的详细信息4、设计一个string结构的article_id_count存储文章的点赞总数下面是我使用CI框架实现的具体功能代码:这里我目前只使用了redis实现,后

2021-10-12 22:14:44 856

原创 php+swoole实现一个简单的聊天室

服务端代码<?php$websocket = new \Swoole\WebSocket\Server('0.0.0.0', '6070');$websocket->set([ 'worker_num' => 1]);$websocket->on('Open', function ($ws, $request) {});$websocket->on('Message', function ($ws, $frame) { //将传递过来的jso

2021-09-23 17:20:26 674

原创 php+swoole编写简易的服务器

这里我们使用php+swoole编写一个简单的静态http服务构建web服务器<?php/** * Created by PhpStorm. * User: 2yq * Date: 2021/9/22 * Time: 15:29 */$web = new \Swoole\Http\Server('0.0.0.0',6070);$web->set([ 'worker_num' => 1]);$web->on('Request',function ($

2021-09-23 14:07:25 500

原创 php swoole扩展

1、下载swoole扩展swoole是一个PHP的扩展,所以安装的方式和安装其它的PHP扩展的方式一样。swoole不支持windows安装,没有windows扩展。 linux系统或Mac系统 Docker都可以,这里我用的是阿里云服务器centos7安装的。下载地址:wget http://pecl.php.net/get/swoole-4.3.3.tgz2、安装依赖环境2.1、Linux内核版本2.3.32如centos必须6.6以上uname -r2.2、PHP7.0以上版本ph

2021-09-22 13:43:45 1408

原创 php+swoole自定义tcp服务端、tcp客户端

部署完成swoole扩展之后,可以编写一个简单的tcp服务,这里的tcp服务是在我的云服务器上编写的,因为Windows没有swoole扩展,所以下面的代码都在云服务器上编写tcp服务<?php//创建Server对象,监听127.0.0.1:6070端口$server = new \Swoole\Server('0.0.0.0', '6070');//可选参数$server->set([ //启动时worker进程的数量 'worker_num' => 1

2021-09-22 11:52:21 799

原创 redis常用操作单例模式封装

<?php/** * Created by PhpStorm. * User: wyq * Date: 2021/8/23 * Time: 15:42 */namespace RedisCurd;class RedisCurd{ // private static $redis; //redis连接 private $conn; //私有构造函数 private function __construct() {

2021-09-18 10:00:11 321

原创 Redis笔记

全局操作**keys *** :展示全部的键keys **为通配符keys *b 展示全部b结尾的键keys a* 展示全部a开头的键dbsize: 当前库的全部键的数量dbsizeselect 1 : 切换redis库操作select [1,2,3,4,5...] 括号里面为可选值flushdb:清除当前redis库里的全部键(尽量不用)flushdb 当前库为什么就清除当前库flushall:清除全部redis库的键(尽量不用)flushallttl:查看键的过期时

2021-09-18 09:56:50 114

原创 docker下安装运行beanstalkd轻量级消息队列

docker下安装运行beanstalkd轻量级消息队列1、首先在docker中下载beanstalkd源sudo docker pull "schickling/beanstalkd:latest"运行结果:2、docker下运行beanstalkd消息队列这里服务就运行成功了。3、使用Pheanstalk连接beanstalkd消息队列composer安装Pheanstalk工具类composer install pda/pheanstalk然后编写连接beanstalkd代码

2021-09-06 15:51:22 1054

原创 centos7 docker安装

1、首先进入docker官网centos7安装docker官方手册网站https://docs.docker.com/engine/install/centos/2、添加软件仓库安装 Docker 的方式可以通过 yum 软件仓库去下载安装$ sudo yum install -y yum-utils安装好了之后就可以添加仓库了:$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux

2021-09-06 14:59:35 143

原创 leetcode day5 删除重复的电子邮箱

196. 删除重复的电子邮箱难度简单编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。±—±-----------------+| Id | Email |±—±-----------------+| 1 | john@example.com || 2 | bob@example.com || 3 | john@example.com |±—±-----------------+Id 是这个表的主键

2021-08-14 19:10:31 689

原创 leetcode day4 部门工资最高的员工

184. 部门工资最高的员工难度中等SQL架构Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 70000 | 1 || 2 | Jim | 90

2021-08-13 16:10:01 152

原创 leetcode day3 查找重复的电子邮箱

182. 查找重复的电子邮箱难度简单SQL架构编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email |+---------+| a@b.com |+--

2021-08-12 13:40:22 262

原创 leetcode day3 超过经理收入的员工

181. 超过经理收入的员工难度简单SQL架构Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。+----+-------+--------+-----------+| Id | Name | Salary | ManagerId |+----+-------+--------+-----------+| 1 | Joe | 70000 | 3 || 2 | Henry | 80000 | 4

2021-08-12 11:33:32 226 1

原创 安装vue-cli问题及解决方案

安装vue-cli的前提必须安装node和npm1、查看node和npm的版本2、查看npm全局安装的目录及已安装的服务这里因为我已经安装了很多全局的服务,正常第一次运行应该是只有npm全局安装的目录,这里我的目录为D:\nodejs\node_global。3、配置镜像站,可以提升下载的速度输入命令配置镜像站npm config set registry=http://registry.npm.taobao.org 4、下载安装vue-clinpm install -g @vue/c

2021-08-12 11:10:22 1197

原创 使用Vue-cli构建一个项目Vue项目

​ 使用Vue-cli构建一个项目Vue项目1、安装vue-cli前提条件是已安装node、npm才可以执行下面的指令npm install -g @vue/cli @vue/cli-init安装成功后查看版本这里很多人会遇到报错,具体解决方案我在下一篇文章详细解决。vue -V成功页面:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kGVhmCLR-1628736056827)(C:\Users\快定\OneDrive\桌面\笔记\笔记\image\im

2021-08-12 10:43:38 219

原创 Leetcode day2 连续出现的数字

180. 连续出现的数字难度中等SQL架构表:Logs+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || num | varchar |+-------------+---------+id 是这个表的主键。编写一个 SQL 查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。查询结果

2021-08-11 14:26:04 197

原创 leetcode day1 分数排名

Mysql178. 分数排名难度中等SQL架构编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。+----+-------+| Id | Score |+----+-------+| 1 | 3.50 || 2 | 3.65 || 3 | 4.00 || 4 | 3.85 || 5 | 4.00 || 6 | 3.65 |+---

2021-08-10 14:51:55 206

原创 axios重构todolist

将之前的todolist项目重构,使用axios调用接口获取数据,通过接口数据渲染页面,下面就是代码的具体实现,我将注解都写在了代码中。index.html<!doctype html><html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <tit

2021-08-06 11:07:13 275 1

原创 CodeIgnier框架实现restful API接口编程

概述公司接口代码使用的是CodeIgnier框架,故我使用CodeIgnier框架实现一个简单的restful风格接口。CodeIgnier框架默认没有资源路由,只有在路由中使用HTTP动词如下图:在实现restful风格接口编程时需要自己定义路由的参数以及类型具体代码如下:路由routes.php代码//默认控制器$route['default_controller'] = 'welcome';//错误页面$route['404_override'] = '';//这个选项可以自动的将

2021-08-04 17:39:39 372

原创 Vue axios实例

axios可以访问API获取数据这里我访问的API是我在PHP的cakephp框架本地环境编写的接口,编写的接口遵循restful风格。前端页面:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>axios</title> <script src="https://unpkg.com/axios/dist/axios.min.js">&

2021-08-04 16:00:54 1051

原创 Vue学习笔记

vue过滤器filters定义过滤器var app = new Vue({ el: '#app', data:{msg:'UP'}, //定义过滤器 filters:{ // 过滤器的名称及方法 myFilters:function(val){ //转化为小写 return val.toLowerCase(); } }})过滤器的使用:Vue.js 允许你自定义

2021-08-04 14:26:36 128

原创 linux centos 下载安装yum

概述:​ 在linux上安装swoole时,使用yum安装gcc和cmake是发现我的云服务器上的yum已经用不了了,当时不知道是什么原因,就在网上找了很久也没有找到方法,最后我准备将yum卸载了重新安装,但是卸载完了之后,发现安装起来网上的资源都已经过时了,最后在163镜像上成功安装了yum,下面就是详细步骤。1、检查本机是否已安装yumrpm -qa | grep yum2、有的话就删除rpm -e --nodeps yum3、重新安装yum这里我用的是163的镜像,网址:http:

2021-07-29 15:37:37 2030 3

原创 Vue:实现一个基本的项目todolist

Vue:实现一个基本的项目todolistapp.js代码:(function(Vue){ new Vue({ el:'#todoapp', data:{ title:'Todoapp', list:[] }, methods:{ add:function(ev){ var input = ev.target; value=input.value.trim(); if(value == ""){ return; } d

2021-07-28 18:21:31 165

Cakephp实现个人博客系统

Cakephp入门

2021-07-22

空空如也

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

TA关注的人

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