- 博客(16)
- 收藏
- 关注

原创 TP5 常用的公共函数(长期更新)
以下都是使用tp5框架,本人封装的常用方法1、数组系列1.1、二维数组根据pid生成多维树 (注意:父级必须排在数组前面,降维的生成树方法)/** * 二维数组根据pid生成多维树 * @param $list 父子级拼接数组传入 * @param $pid 父级ID字段 * @param $child 子集 * @return array */function listToTree($list, $pid = 'pid', $child = 'children'){ $t.
2020-05-12 16:17:48
990

原创 TP5 实现基于标签简单的推荐算法
1、算法思想#####1.1、理解算法过程我们在写算法的时候要先理解我们的对象和之间的关系,我这里举例供求信息和用户设置标签,两者关系是,系统会根据用户设置的标签来匹配与其相似度较高的,同时用户发布的供求信息的标签也会影响系统推荐的供求信息,这里还需要涉及到权重问题。1、我们应该采用什么计算方式来计算,我这里采用简单 交集 / 并集 计算相似度的计算方法。2、还需要考虑 个人设置标签 和 发布供求标签 的 占比 以及 发布供求标签 的 出现次数。3、另外根据业务需求,可以考虑 出售 和 求购
2020-05-12 15:44:04
1583
2
原创 TP5 实现转盘抽奖
1、实现转盘分多种情况,常见的有 不同中奖几率的奖品 、限定数量的奖品 和 限定数量和中奖几率的奖品1.1、不同中奖几率的奖品 的实现1)计算出总概率的精度M2)然后将所有的概率数组依次遍历3)遍历中随机取出一个1~M的数字4)如果随机数比当前这个数概率小,则表示命中。5)反之则将总精度减去当前未命中的概率,表示剩余的总概率总精度是为了生成随机数,而减去未命中的概率是为了排除出去,最后必定会命中1.1.1、代码实现传入的数组对应原有下标的一维数组,值为概率,整数/小数都可以计
2021-01-27 10:50:11
965
原创 TP5 实现链接分享/帮助,限制每个用户每天一次帮忙
1、实现思想1.1、分享人角度用户需要将对应生成的链接发送给其他用户链接中必须包含所需要的 当前用户ID 和 相关ID(例如:视频ID/商品ID)用户需要登录才能分享,如果没有登录则不传 用户ID 和 相关ID分享成功后需要获得对应的报酬或分享成功的展示1.2、帮助人角度用户需要点击分享人的链接并且需要登录,否则不算分享成功。帮助人点击一次算一次,多次点击也只算一次前端在分享前需要调用接口,告诉后端 某某用户 分享的 相关ID(例如:视频ID/商品ID)前端在用户点击的链接需要
2021-01-27 10:49:41
356
原创 swoole 使用 xdebug 实现调试模式(PHPSTORM)
1、安装sdebug插件说明: swoole的官方编程须知中已经说到了,swoole与常规版本的 xdebug 不兼容,主要是由于大量全局变量的使用违背了协程的规范,可以见此网址的说明:https://wiki.swoole.com/wiki/page/851.html另外如果想断点调试基于swoole的项目,专门衍生出了一个 sdebug,供调试swoole项目。安装流程参见:https://github.com/mabu233/sdebug1.1、克隆将对应的 sdebug 文件克隆下
2021-01-27 10:46:14
1377
1
原创 关于Redis的数据迁移(三种方法)
1、使用宝塔进行数据迁移1.1、找到Redis的文件存储路径点击首页软件的redis打开配置界面。点击下面箭头指向地方就是对应的文件存储地方其中还要RDB持久化,多久会插入一次,正常是不需要人为去保存一次。如果想要黑窗口链接到 redis: redis-cli如果想命令行查找 redis 文件目录如下:CONFIG GET dir如果需要再次保存则打开黑窗口执行下面:save1.2、找到持久化文件并下载将对应的目录在文件中打开并找到dump.rdb将对应的文件下载
2020-05-20 11:26:39
7791
1
原创 TP5 MYSQL按照原来的IN顺序查询
PS:小项目中IN查询时可以的,但最好减少使用次数。距离有个用户表,我们需要取出ID是(1,2,3,4,5)的用户以下是MYSQL原生的IN查询使用orderSELECT * FROM `user` WHERE AND `id` IN ( 1, 2, 3, 4, 5 ) ORDER BY field( b.id, 1, 2, 3, 4, 5 )只需要加最后那一段就可以实现,但是TP5里面在生成MYSQL的时候会进行转换,所以会导致以下情况:所以,我们在使用拼接o.
2020-05-12 16:16:01
1592
原创 TP5 实现多字段的关键词模糊查询
我们在开发中会遇到关键词查询,但是查询的关键词又是多个字段的。我们要考虑到的是这几个字段LIKE查询的时候,他们的关系是或关系,最外层则是和关系。1、实现思想举例子:我们要查询用户表中的 1.用户名 2.用户公司名称 3.用户标签,我们另外再带上 用户类型为1 的条件。大概的模式如下:类型 =1 AND (用户名 LIKE %关键词% OR 用户公司名称 LIKE %关键词% OR 用户标签 LIKE %关键词%)2、TP5如何实现2.1、第一种实现方法$keyword = in
2020-05-12 16:11:49
2620
原创 TP5 使用IN查询时如何限制条数
1、实现思想1.1、首先建立一个表作例子,如下:其中表里面的数据如下:2、MYSQL实现2.1、接下来我们开始用Navicat输出数据SELECT * FROM `fa_test_user`我们将上面的代码进行改装,筛选出类型为1,2,3的用户,每种类型 限制输出3条SELECT*FROM`fa_test_user` u1LEFT JOIN `fa_test_user` `u2` ON `u1`.`type` = `u2`.`type`AND `u1`.`id`
2020-05-12 16:08:50
1803
原创 TP5 封装多业务的发送短信功能(包括国际短信)
1、准备工作1.1、准备依赖包这个网站提供的都是PHP包,挺有用的 https://packagist.org/另外还可以在GitHub上面下载 https://github.com/1、短信方面 我这里用到 packagist 里面的 overtrue/easy-sms下载依赖包之前记得要看下依赖的PHP版本、短信平台等。我们可以看到这个依赖包提供的平台有以下:2、Redis方面 我用到了Predis的包另外他包里面提供了使用方法和类型,需要去看下,不过本人进行了代码封装。
2020-05-12 16:07:06
807
原创 Web端a标签跳转地图等链接(收藏)
百度地图<a href="http://api.map.baidu.com/marker?location=纬度,经度&title=所在位置名称&content=所在位置的简介(可选)&output=html">百度地图</a>高德地图<a href="https://uri.amap.com/marker?position=经度,纬度&name=所在的位置名称">高德地图</a>...
2020-05-12 16:02:53
1744
原创 TP5 实现微信支付和支付宝支付
1、微信支付1.1、安装依赖包我这里使用 EasyWeChat 实现微信支付,另外我附上之前我封装的微信类。详细操作里面写的比较清楚,请先看这个:https://www.jianshu.com/p/d376d921bf161.2、准备工作(1)需要去微信开放平台注册账号appid(微信开放平台上的应用id)mch_id(微信申请成功之后邮件中的商户id)notify_url(支付成功后的回调地址)api_key(在微信商户平台上自己设定的api密钥 32位)apiclient_ce
2020-05-12 15:56:44
2614
原创 PHP操作文件常用函数
1、函数功能简述fopen() 打开文件或者 URL链接:https://www.php.net/fopenfsockopen() 打开一个网络连接或者一个Unix套接字连接链接:https://www.php.net/fsockopenfwrite() 写入文件链接:https://www.php.net/fwritebasename() 返回路径中的文件名部分。链接:https://www.php.net/basename**copy()**复制文件链接:http
2020-05-12 15:55:00
210
原创 PHP爬取企业详情(百度信用)
1、爬取思想百度信用网站 https://xin.baidu.com/1.1、尝试获取数据和查看url链接1、我们可以随便搜索法人代表,例如输入:马云对应的链接就会出现 https://xin.baidu.com/s?q=%E9%A9%AC%E4%BA%91&t=02、我们尝试搜索公司名称,例如输入:阿里巴巴对应的链接就会出现 https://xin.baidu.com/s?q=%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4&t=03、我们
2020-05-12 15:53:11
2550
3
原创 二维码 | 如何实现一码多用
本人查阅了许多资料,网上大部分的描述都比较模棱两可,我这里就将我的想法分享出来提供大家学习。在这里实现一码多用的功能指的是 同个二维码在不同端扫出的结果不一样 例如微信扫跳出 微信小程序,支付宝扫跳出 支付宝小程序,内部APP扫码跳 内部页面等等。1、实现流程1.1、流程图#####1.2、详细流程步骤1、 是生成二维码,链接是前端H5界面的链接2、 用户扫一扫的时候就会根据扫码的APP进行判断,其中微信扫一扫如果要 跳转小程序 的话需要在 微信公众平台 配置,而且小程序 暂不支持个人类型
2020-05-12 15:49:42
4367
原创 TP5 封装通用的微信服务类
1、安装依赖包我们这里用的是 EasyWeChatEasyWeCha官网 https://www.easywechat.com/安装地址 https://github.com/easywechat/docs相关文档 https://www.easywechat.com/docs/4.1/payment/indexcomposer安装$ composer require overtrue/wechat:~4.0 -vvv1、封装服务类<?phpnamespace app\
2020-05-12 15:46:50
629
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人