- 博客(69)
- 收藏
- 关注
原创 Mysql数据库语句优化步骤
如果有存在没使用上的,要具体分析原因。这里之前遇到一个很低级的错误,就是联表的两张表字段是不同类型的,导致使用不上索引,排查了很久,最后无意间发现是两个字段的不同类型导致的。把之前不合理的数据表通过sql查询到的结果放到临时表里面,然后在联合查询的时候就用这张临时表去联合。有可能是我们在设计表的时候,可能有些不合理的地方,但是已经没法改变表结构的情况下,怎么改变呢?步骤2.把数据表里面需要用到查询里面的字段,加上索引,有无索引速度差距很大。步骤1.对于复杂的语句,先检查是否有非必须的联表,如果有去掉。
2023-05-13 10:44:27
120
1
原创 百度富文本编辑器UEditor增加自定义字体
需要解决的问题:给编辑器自由增加自己想要的字体(而不局限于系统本身自带字体)以下分两种情况给出解决方案:1. 常见系统自带字体2. 自定义字体1. 常见系统自带字体图片中是我们系统中默认自带的一些字体:下面就拿其中的Calibri字体作为例子1.1 找到截图中的路径,添加Calibri这个字体1.2 找到截图中的路径,添加Calibri字体1.3 效果(这样就添加好了字体)2. 自定义字体自定义字体跟上面添加字体的步骤是一样的,就是..
2020-10-12 12:00:14
3612
6
原创 php 生成压缩图片
思路:将图片先上传到服务器,然后再进行图片压缩下面提供两种方案:方案一:使用php内置的方法(优点不用安装扩展,但处理gif动图无法处理,压缩完就变成静态图片)方案二:使用Imagick扩展(优点:可以处理gif动图,缺点需要安装扩展,建议还是这种的,Imagick更加强大)方案一代码:// 压缩图片 public function resizeImage($file_path, $maxwidth = 480, $maxheight = 480, $name = '')
2020-09-08 11:17:57
456
原创 设计模式之状态模式
UML图定义:(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。使用场景:当一个对象改变了状态,会影响这个对象能执行的行为。比如当我们灯控制开关,有两个行为:一个是开的行为,一个是关的行为。当灯是开的状态,只能执行关的行为;当灯是关的状态,只能执行开的行为。这个时候状态是改变了灯这个对象的行为的。具体的代码实现:...
2019-03-24 12:26:32
267
原创 设计模式之命令模式
UML图定义:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。使用场景:请求者跟执行者有紧密的联系,比如遥控操作电视,遥控是请求者,有开、关、选择频道的请求功能。电视是...
2019-03-24 12:13:29
160
原创 设计模式之装饰模式
UML图定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。使用场景:当一个对象可以根据选择动态的加上其他功能,动态的意思是可变的和不确定的。比如:购买汽车系统,我们可以给不同的汽车型号加上不同的功能,比如:GPS功能,雷达功能。也可以不加,这个时候哪个型号加跟不加这些功能是动态的,是根据需要来决定的。但...
2019-03-24 11:45:58
164
原创 设计模式之组合模式
UML图(GoF《设计模式》):将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。使用场景:当遇到树形的结构,一般使用组合模式。思想是,将枝干和叶子抽象出一个接口,让枝干和叶子类实现抽象接口,让它们具有一致性。常见的文件夹系统。文件的叶子最底层,文件夹是枝干下面可以有文件和文件夹。将文件和文件夹抽象出一个一致对外的接口。具体代码...
2019-03-24 11:29:27
293
原创 设计模式之适配器模式
UML图:定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器的实现有两种方案:类适配(通过继承实现),对象适配(通过获得对象实现)使用场景:当已有的类现在不能完成客户的需求,比如:一个两头充电器,现在需要这个充电器需要增加三头充电功能。要修改是比较简单的,直接在两头充电器类里面增加三头充电的方法...
2019-03-24 11:15:19
160
原创 设计模式之观察者模式
UML图:摘抄说明:观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用...
2019-03-24 10:47:45
194
原创 设计模式之策略模式
UML图:官方定义: 定义了一组算法(业务规则); 封装了每个算法; 这族的算法可互换代替(interchangeable) 个人理解,对于一个主体对象来说,它有多种动作行为,而这多种动作行为是平行无关联的。根据多种动作行为抽象出一个接口类,让每一种动作行为都按抽象出来的接口进行具体实现。这样的好处就是,可以让主体对象更方便的切换不同的动作行为。举一个列子...
2019-03-24 10:25:54
116
原创 设计模式
最近在学习设计模式,目前学了大概10个,学完最深de的体会就是对于其他人写的代码有了新的理解。知道了为什么哪些代码为什么要这么设计编写。个人对于设计模式的理解是,是前人总结的在某些特定场景,提供一种设计方法,更好的让代码具有灵活性和可维护性。设计模式总的来说是一个解耦的过程,降低类之间的耦合度,让代码更加灵活。设计模式的设计原则如下,在百度百科有详细的解释。...
2019-03-24 09:51:06
119
原创 https的理解
https的理解上一篇简单的了解了http的过程,那https的实现过程又是怎样的呢?其实上网找了很多的资料,其实之前一直对这些协议的实现一点都不懂,只是单纯的在网上找教程,下个证书直接服务器配置一下,然后可以用了就好。https数据过程中是怎么做到加密的呢?从字面上意思去理解,就是https传输过程中,所有数据是加密过的,就算被他人非法获取,由于第三方不知道秘钥和加密...
2019-02-28 10:36:07
134
原创 HTTP协议的理解
HTTP是基于应用层的协议,然后由TCP在传输层进行传输。通俗的说HTTP是基于TCP协议的。对于HTTP协议感觉就是一头雾水,虽然知道这是为了统一标准而定下的协议,但是这个协议它是怎样工作的呢。举一个例子,当我们在浏览器中输入URL访问资源,这个时候浏览器会根据HTTP协议将相关数据进行打包,然后交给TCP协议。TCP协议根据数据包信息对服务器发起请求,并进行三次握手,简历客户端和...
2019-02-27 23:42:36
248
原创 MySQL的主从复制
为什么需要这个技术,主要目的是减轻主数据库服务器的负载。使用MySQL的主从复制功能轻松完成主从服务器的数据同步。只有主从服务器的数据能及时更新,为读取分离提供前提条件。 MySQL复制技术主要使用bin-log日志功能,主服务器的基本所有操作都会记录在bin-log日志中,从服务器只要执行主服务器的bin-log日志就能完成数据同步。 步骤:1.主服务器数据库开一个供从服务器...
2019-01-04 11:44:36
94
原创 Composer自动加载
现在很多的PHP框架使用了composer方法来管理第三方类, 之前也是一脸懵,一直在想,我们的框架是怎么做到我们自动把vendor中的类库自动识别到相关文件的。后来看了一下源码,发现是是用了composer去管理跟实现这个功能。以下是在看源码,写下的一点小结。/** * php>5.6的composer加载类库的方法 * 1.使用composer管理类,比如安装一个类之后,就会在...
2018-11-13 11:54:53
416
原创 Laravel基于类库Firebase/php-jwt 的JWT加密实现
安装类库 composer require firebase/php-jwt 2.登录接口。引入类库(use Firebase\JWT\JWT; )->查询数据库用户名、密码正确->生成Token并返回public function login(Request $request) { $user_name = $reques...
2018-10-18 16:45:54
4486
原创 php 调用阿里云API
//入口public function index(){ date_default_timezone_set("GMT"); $Timestamp = date('Y-m-d\TH:i:s\Z',time()); date_default_timezone_set("PRC"); $action = 'DescribeRegions'; $access...
2018-07-26 15:26:28
2373
1
原创 [阿里云]The input parameter "Timestamp" that is mandatory for processing this request is not supplied.
因为业务需要,要接阿里云的api 一直提示:The input parameter "Timestamp" that is mandatory for processing this request is not supplied. 我的时间错格式是这样的,跟文档说的一样2018-07-17T15:25:39Z 解决:文档的例子有指出这个时间跟北京时间是不一样的...
2018-07-17 15:32:24
4943
2
转载 linux安装gitlab
转载链接:https://cloud.tencent.com/info/497b83f3ee97879ae9526ebe65061b9a.html转载链接:https://blog.csdn.net/xiangshanqishi/article/details/23439397在安装过程中根据自身情况,把遇到的问题加以说明。1.安装gitlab的之前需要安装的环境sudo yum install...
2018-04-19 15:13:00
784
原创 [nginx] 给http网站访问加https
只需要给服务器配置SSL证书信息就可以了1.申请域名SSL证书,方式有很多,本例是再腾讯云申请了一个免费证书。需要一点时间审核,审核通过之后,下载证书待用2.去nginx配置文件中加入如下配置,server { listen 443; server_name XXXXX.com; #填写绑定证书的域名 ssl on; ssl_certificate ...
2018-02-24 17:38:29
8220
原创 linux忘记mysql5.7的root用户密码
1.跳过登录mysql的验证vi /etc/my.cnf在[mysqld]段中加入skip-grant-tables保存并退出2.重启服务service mysqld restart3.修改密码并清除缓存mysql -uroot -p密码直接回车就好use mysql;update user set authentication_string=password("your password") w...
2018-02-24 14:46:17
313
转载 linux使用crondtab定时执行php脚本文件
本文是综合网上多篇文章,加上自己遇到的问题,进行的总结因为需求需要,需要在linux下定时执行php文件,通过查资料了解到,在linux中一般是用crondtab服务来做定时任务的(类似于windows的定时任务)。crondtab是linux自带服务,如果没有安装自行安装就好。1.安装crondtab服务(如果系统没有crondtab服务)yum install crontabs相关命令说明:/...
2018-02-08 22:48:24
882
原创 Mysql Native table 'performance_schema'.'session_variables' has the wrong structure
命令行直接:set @@global.show_compatibility_56=ON;
2017-11-08 12:43:03
5373
5
原创 JQ JS 改变value值不触发change事件
JQ改变value值不触发change事件 Change事件触发有两个必要条件:值改变、失去焦点。所以当使用JQ改变值时,控件没有失去焦点,所以不会触发。 目前验证有效的解决办法,只能是手动触发change事件如:$('input[name="change_val"]').click(function(){$('input[name="a"]').val('a');
2017-09-14 20:29:01
19687
原创 php文件锁的使用
flock()函数以上是引用http://www.w3school.com.cn/php/func_filesystem_flock.asp测试的例子:文件一:<?php$fp = fopen("test.txt","r+");fwrite($fp, "Write something heren");flock($fp, LOCK_EX);sleep(5);floc
2017-08-08 01:31:24
446
原创 php微信开发源码
<?php/** * wechat php test *///define your tokendefine("TOKEN", "landyxy");//只用改这一个TOKEN、任意名称,比如weixin_freddon$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();//验证是否作为微信服务器//$we
2017-08-06 12:22:39
676
原创 Redis和Memcached的区别
1、Redis支持数据可持久化,会隔一段在硬盘保存数据(保存到硬盘的方式有两种AOF跟RDB)2、Redis支持更多的数据结构
2017-08-06 12:06:04
142
原创 Linux安装Redis和php的redis扩展
一、安装Redis(各版本下载地址 http://download.redis.io/releases/)wget -P /soft http://download.redis.io/releases/redis-stable.tar.gz cd /softtar xzf redis-stable.tar.gzcd redis-stable/把redis安装到指定
2017-08-06 11:31:12
305
原创 Linux安装Memcache与安装php memcached扩展
安装Memcached之前,要先安装libmemcached这个支持库。1、安装libmemcached1.1下载wget -P /usr/local/libmemcachedwget -P /soft https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz-P /s
2017-08-05 21:50:04
316
原创 [mysql] select语句中比较两个max函数查询出来的时间,然后出现诡异的情况
$user_list=$user->alias(u)->field("u.user_id, u.user_money,(case when u.user_name<>'' then u.user_name else u.nick end) AS hym,u.user_name AS phone,u.rank_points AS rank_points,u.reg_time AS reg_time,
2017-04-13 17:45:07
3722
原创 [thinkphp3.2]多查询语句拼接(And、Or)
SELECT * FROM `ecs_order_info` WHERE ( ( `order_status` = 5 AND `shipping_status` = 2 ) OR `order_status` = 6 ) AND `user_id` = 1上面标红的where查询语句在TP中的拼接如下: $order=M('order_info'); $where['order_st...
2017-04-12 10:27:18
12580
原创 [PHP] PHP操作Excel导出和导入,使用PHPExcel第三方类操作
1. 引入PHPExcel类,去官网下载类库http://phpexcel.codeplex.com/下载的官方文档,如上图。对于项目真正有用的事Classes文件夹,将Classes更名为PHPExcel放到自己项目类库中,以下是Thinkphp框架下的类库存放目录。2. 下面导出的使用与实践 //将数据导出到Exce
2017-03-24 11:13:49
4492
转载 [Javascript]异步上传文件
页面引用了别人写的代码,但是找不到原作者1.网页包含以下两个文件2.前台代码$(document).ready(function() { var options = { target: '#output', // target element(s) to be updated with server response
2017-03-24 09:57:07
676
原创 无限级分类笔记,
无限极分类笔记(后台处理+前台显示): 最后效果: php后台处理数据库设计: 关键方法 /** * 得到每级分类的级数 * @param array $category 分类数组 * @param number $parent_id 分类父id * @param number $level 分类级数 *
2017-02-18 14:12:35
379
原创 无限级分类三种方法
function sort($category,$parent_id=0,$level=0){ static $arr=array(); foreach($category as $k=>$v){ if($v['parent_id']==$parent_id){ $v['level']=$level;
2017-02-16 15:52:26
5780
原创 n级阶梯,每次走一步和两步或三步,有多少种走法
使用递归和斐波那契数列解决问题 /** * 该函数用递归实现 * @param int $n 阶梯数 */ function jieti($n){ if($n==1){ //jieti(1)=1 return 1; } elseif($n==2){
2017-02-15 16:16:15
2807
转载 使用TP上传类,一个表单多个file上传丢失部分文件
转载原文链接: http://www.cnblogs.com/shenxinpeter/p/6225568.html以下文字,全部来自于上述链接原文:描述thinkphp多文件上传时,有些时候会出现文件丢失的情况。比如上传多个图片,最终只上传了一个图片。本地测试的时候是正常的,但上传到服务器上就会出现丢失文件这种情况。 原因查看tp上传类(ThinkPHP\Lib
2017-01-10 16:38:28
1477
原创 Apach+php安装
Windows 64位下载的apache是免安装,直接解压就好了。1.bin文件夹下面,启动ApacheMonitor.exe。发现没有服务。2.原因是Apache没有安装服务,再CMD中执行安装命令 httpd.ext -k install注意,在执行第2步之前,要检查conf文件夹下的httpd.conf文件下的SRVROOT是否为apache存
2016-12-22 13:41:58
588
原创 获得项目的所有控制器和方法下面的方法
public function index(){ $modules = array('Admin'); //模块名称 $i = 0; foreach ($modules as $module) { $all_controller = $this->getController($module);
2016-12-20 14:49:26
1035
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人