自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql中int、bigint、smallint 和 tinyint的区别详细介绍

1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到1271.BIT[M]位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为12.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4很小的整数。带符号的范围是-128到127。无符号的范围是0到255。BOOL,BOOLEAN是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。4.SMALLINT[(.

2021-09-27 15:59:20 305

原创 php使用带小数点的数字作为键名时

使用带小数点的数字作为键名时,键名会自动截取整数部分作为键名。如$arr[123.45]=5,你使用$arr[123.45]或$arr[123]均可以取得键值;用foreach遍历时,使用的是$arr[123]。数组中键名的数据类型应该为整数或字符串型。...

2021-01-11 14:17:21 516

原创 Mysql 的SQL关键字执行顺序

书写顺序和执行顺序书写sql语句时各关键字的顺序:selectfromwheregroup byhavingorder by执行顺序:fromwheregroup byhavingselectorder by参考:

2021-01-04 13:48:08 321

原创 memcached与redis区别

存储方式:Memcached 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。数据支持类型:Redis在数据支持上要比Memcached多的多。Memcached仅支持string,所以也不用记录数据的类型。...

2020-12-18 16:05:27 173 1

原创 Mysql调优(updating~)

mysql调优调优调优方法数据库设计选取最适用的字段属性使用索引一般说来,索引应建立在那些将用于JOIN,WHERE判断和ORDERBY排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引。对于一个ENUM类型的字段来说,出现大量重复值是很有可能的情况。尽可能的使用not null避免在数据库中使用blob、text类型保留大文本、文件、图片,建议使用其他方式存储(TFS/SFS),MySQL只保存指针信息。sql语句确定选那几列数据的时候,不要用select *,只

2020-12-18 10:41:16 547

原创 Disk [admin] not configured, please add a disk config in `config/filesystems.php‘

Laravel-admin添加管理员是报这个错,在config/filesystems.php中的disks数组添加如下代码: 'admin' => [ 'driver' => 'local', 'root' => storage_path('app'), ],

2020-12-15 15:39:29 722

原创 laravel、TP、YII框架的优缺点

一、ThinkPHPThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架。它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,各方面都比较人性化,熟悉J2EE的开发人员相对比较容易上手,适合php框架初学者。 ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、 Oracle,以及PDO的支持。ThinkPHP有着丰富的文档和示例,框架的兼容性较强

2020-12-15 10:34:41 2199

原创 Unix和Linux的区别

Unix于1969年由贝尔实验室开发出来,使用至今已变更了很多个版本。目前主流的Unix系统有三种,分别是AIX、HP-UX、Solaris,这些Unix系统互不兼容。Linux于1991年由芬兰大学生Linus开发出来,是一个类Unix系统,但是其代码不源自任何Unix版本,完全不是Unix的一个分支,而是一个开源版的模仿。现在Linux主要使用在PC机和嵌入式,或者一些小型企业的服务器;而Unix垄断着大型企业的关键性应用领域。作者:Choid链接:https://www.zhihu.com/que

2020-12-13 10:51:43 1568

原创 面试题:php程序上线时,需要禁用哪些函数

php为什么默认要禁用一些函数?考虑到安全原因,一般这些被禁用的函数都是高危函数例如exec函数。如果未被禁用,如果网络漏洞被利用,可进一步提权获取对计算机的控制,问题由网站层面上升到服务器层面,或者继续扩大,对这些函数进行禁用可以避开一些高危操作。如何禁用?打开PHP.INI,找到这行:disable_functions =在后面那里加上要禁用的函数,如禁用多个函数,要用半角逗号 , 分开给个例子:disable_functions = passthru,exec,system,popen

2020-12-12 16:32:50 307

原创 利用redis List队列简单实现秒杀

一 生产者producer部分--------------------------------producer 部分注释------------------------------------------------------------用户在页面请求之后, 获取到用户uid , 跳转到这个加入队列的方法 (这里直接在producer中模拟了多个uid)在方法内部判断redis队列长度是否已经达到要求, 如果没有超出, 则执行加入队列的操作 (这里为了简洁,没有封装成方法)注: producer.

2020-12-11 12:17:48 1180

原创 redis的有序集合和列表的区别

一、相似之处1、二者都是有序的。2、二者都可以获得某一范围的元素。二、区别1、列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会较慢,所以它更适合实现如“新鲜事”或“日志”这样很少访问中间元素的应用。2、有序集合类型是使用散列表和跳跃表(Skip list)实现的,所以即使取位于中间部分的数据速度也很快(时间复杂度是O(log(N)))。3、列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)。4、有序集合要比列表类型更耗费内存

2020-12-08 22:03:29 1740 2

原创 PHP常量详解:define和const的区别

1、const是一个语言结构;const定义的常量是大小写敏感。而define是一个函数,可以通过第三个参数来指定是否区分大小写。true表示大小写不敏感,默认为false.例如:const CONSTANT = 'Hello World';define('PI', 3.14, true);2、const简单易读,编译时要比define快很多。3、const可在类中使用,用于类成员常量定义(在php5.3.0以后,可以使用const关键字在类定义的外部定义常量),定义后不可修改,const在类内

2020-12-07 16:07:00 141

原创 Laravel学习笔记

基础功能路由对路由参数约束限制Route::get('task/read/{id}', 'TaskController@read')->where('id', '[0-9]+'); //单个参数->where(['id'=>'[0-9]+', 'name'=>'[a-z]+']); //多个参数路由重定向Route::redirect('index', 'task');Route::redirect('index', 'task', 301); //状态码

2020-11-30 11:33:15 405

转载 google快捷键

插件地址添加链接描述指令大全https://blog.csdn.net/ljh_laura_li/article/details/81909460常用指令r 刷新当前页yy 复制当前地址ob 打开百度搜索栏

2020-11-19 11:27:05 93

转载 使用dateInterval获取时间差与常用时间计算技巧

<?php//$dateTime1 = new DateTime();//$dateTime2 = new DateTime('2019-9-2 12:23:11');//$interval = $dateTime1->diff($dateTime2);//$format = '距离你的生日还有//<span style="color:red">%m个月%d天%h小时</span>//,共有%a天';//echo $interval->format($

2020-11-18 17:18:50 867 1

转载 使用datetime类维护日期

<?php// DateTime DateInterval DateTimeZonedate_default_timezone_set('PRC');//$prc = new DateTimeZone('PRC');//$dateTime = new DateTime();//$dateTime->setTimezone($prc);//echo $dateTime->format('Y-m-d H:i:s');$dateTime = new DateTime('2020-

2020-11-18 17:16:18 80

原创 php操作json注意事项

JSON

2020-03-03 14:25:41 181

原创 php简单读取文件夹一级目录

function getDir($dir) { $dirArray[]=NULL; if (false != ($handle = opendir ( $dir ))) { $i=0; while ( false !== ($file = readdir ( $handle )) ) { ...

2020-02-23 20:09:00 454

原创 PHP处理JSON字符串key缺少双引号的解决方法

function ext_json_decode($str, $mode=false){ if(preg_match('/\w:/', $str)){ $str = preg_replace('/(\w+):/is', '"$1":', $str); } return json_decode($str, $mode);}

2020-02-23 19:23:11 684

原创 关于laravel框架Model返回的值为stdClass对象转换两种方法

一般情况下laravel模型层查询出来的数据是stdClass对象,无法直接当做数组进行视图展示,所以需要转换为数组格式。Model中查到的数据为 $data ,对它进行转化,转化为数组。第一种方法:利用foreach循环遍历手动自定义转换为数组(数组名及主键自拟)data=admin->getOne($id);foreach (dataasv){data1[′uid′]=v...

2020-02-09 16:11:36 1077

原创 typeof 运算符

一:把类型信息当作字符串返回。typeof 返回值有六种可能: “number,” “string,” “boolean,” “object,” “function,” 和 “undefined.”二:我们可以使用typeof来获取一个变量是否存在,如if(typeof a!=“undefined”){},而不要去使用if(a)因为如果a不存在(未声明)则会出错,三:对于Array,Null等...

2019-12-10 14:45:27 147

原创 MySQL的日期时间

DATE_FORMAT(date,format) 把日期进行格式化其中 date 参数是合法的日期(不可为时间戳),format 参数则规定日期/时间的输出格式,可以使用的格式有:FROM_UNIXTIME(unix_timestamp ,format) 把时间戳格式化成一个日期其中 unix_timestamp 参数为要转换的时间戳,format 参数则规定日期/时间的输出格式,他可以使...

2019-12-08 15:39:37 150

原创 mysql 错误代码: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated c

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中因为有only_full_group_by,所以我们要在MySQL中正确的使用group by语句的话,只能是select column1 from tb1 group by column1(即只能展示group by的字段,其他均都要报1055的...

2019-12-07 14:33:31 2243

原创 mysql ERROR 1067: Invalid default value for 字段

//今天把一个数据库的sql文件导入到另一个数据库出现以下异常:查阅资料得知,mysql5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要解决这个问题,就需要修改sql_mode的值。先:mysql -h -u -p使用命令select @@global.sql_mode; 可以查看全局sql_mode的值。//临时修改...

2019-12-02 11:31:45 641

转载 集中式版本管理系统和分布式管理系统的区别-集中式vs分布式

集中式:版本库是集中存放在中央服务器的,本地是没有版本库的修改记录的。干活的时候,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。所以集中式版本控制系统最大的毛病就是必须联网才能工作!另外,集中式版本管理,不代表服务器只有一台。就像淘宝就一个网站,但服务器有上千台一样。3. 分布式:每个人的电脑上都是一个完整的版本库,找一台电脑充当服务器的角色,...

2019-11-15 20:48:38 1547

原创 memcache 和 memcached 的区别

1、memcache最早是在2004年2月开发的,最后更新是在2013年4月,而 memcached 最早是在2009年1月开发的,最后更新是在2014年1月更新的。因此 memcache的历史 比 memcached 早。2、 memcache 是一个原生版本,完全是在 PHP 框架内开发的,支持 OO(面向对象) 和非 OO 两套接口并存,而 memcached 是建立在 libmemcac...

2019-11-15 11:04:14 1384

原创 memcache

1.什么是memcache?答:是一个分布式的内存数据缓存服务器。在应用系统中处于数据库层和应用层之间。是多线程的,读写速度非常快。2. 为什么使用memcache数据库?答:关系型数据库的数据存储在磁盘中,而memcache将数据存储在内存中,在内存中读取数据比从磁盘上读取数据要快好几倍。所以目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提...

2019-11-15 10:46:24 139

原创 tp5的空操作、空控制器、404页面

空操作空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行。_empty方法会传入当前url中的控制器名称。_empty($action)空控制器空控制器的概念是指当系统找不到指定的控制器名称的时候,系统会尝试定位空控制器(Error)。config.php:// 更改默认的空控制器名'empty_controller' => 'MyError',...

2019-10-19 15:20:16 249

原创 求众数

题目: 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2Boyer-Moore 投票算法想法如果我们把众数记为 +1+1 ,把其他数记为 -1−1 ,将它们全部加起来,显然和大于...

2019-10-12 10:18:48 104

原创 解决php提示Maximum execution time of 30 seconds exceeded错误

有3种方法可以处理此错误:修改php配置文件php.ini文件使用 ini_set() 函数使用set_time_limit()函数修改php配置文件php.ini文件在php.ini中找到max_execution_time = 30 ;也可直接修改为:max_execution_time = 0; //无限制注意: 修改后需要重新启动/ApacheLinux服务器。使用...

2019-10-11 09:13:16 635

原创 php数组合并方式区别

$a = ['a', 'b', 'c'];$b = [1, 2, 3];$c = [11 => 'a', 22 => 'b', 33 => 'c'];$d = [11 => 1, 22 => 2, 33 => 3];$arrFirst = [ "first_key" => 1, "second_key" => 1, ...

2019-10-10 15:26:44 126

原创 echo print print_r var_dump printf区别

1. Echo和 print比较相同点 :二者都不是一个函数(而是一个语言结构);只能接受简单类型的参数(如int,string)不同点 :echo 接受参数列表,print仅支持一个参数;echo 无返回值,print 总是返回12. print_r()和var_dump()比较相同点 :不同点 :var_dump无返回值, print_r返回布尔值...

2019-10-09 15:31:02 174

原创 php猴子选大王

function monkey($m, $n){ $arr = range(1, $n); $i = 1; while (count($arr) > 1) { ($i % $m !== 0) && ($arr[] = $arr[0]); array_shift($arr); $i++; } ...

2019-10-08 16:33:29 91

原创 php删除数组某个单元

使用array_splice()删除特定值和使用unset删除特定值是有区别的。array_splice()函数删除的话,数组的数字索引值也变化了,重新排序。unset()函数删除的话,数组的数字索引值没有变化。两个函数都不会改变关联数组的索引。...

2019-10-08 15:32:20 114

原创 PHP反转包含中文的字符串

strrev不能解决中文字符串翻转的问题function reverse($str){ $re = ""; $len = mb_strlen($str); for ($i = 0; $i < $len; $i++) { $re = mb_substr($str, $i, 1).$re; } echo $re;}$str = '...

2019-10-07 17:50:20 136

原创 smarty

<?phpclass mary{ public $re; public $tmp; public $tmp_dir = 'template'; public $param; //渲染模板 function display($file) { $this->tmp = $this->tmp_dir . '...

2019-10-07 09:25:18 192

转载 Http状态码301和302概念简单区别

1、什么是301重定向?301重定向/跳转一般,表示本网页永久性转移到另一个地址。301是永久性转移(Permanently Moved),SEO常用的招式,会把旧页面的PR等信息转移到新页面;2、什么是302重定向?302重定向表示临时性转移(Temporarily Moved ),当一个网页URL需要短期变化时使用。3、301重定向与302重定向的区别301重定向是永久的重定向,...

2019-10-07 09:22:13 188

原创 isset 和empty区别

isset() 如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。Empty() 当一个变量并不存在,或者它的值等同于FALSE,返回TRUE,否则返回FALSE补充1: 在下列情况下一个变量被认为是 NULL:被赋值为 NULL。尚未被赋值。被 unset()。补充2: 以下值等同于FALSE:“” (空字符串)0 (作为整数的0)0.0 (...

2019-09-29 15:05:05 130

原创 php实现一个发红包功能,100元发给8人

/** * 发红包 * */function red($total, $num){ $total *= 100; $tmp = []; $arr = []; for (; $num > 1; $num--) { $p = mt_rand(1, $total); while (in_array($p, $tmp) || $...

2019-09-28 09:34:40 484 1

原创 用单例模式建立一个数据库连接

理解php单例模式一、什么是单例wiki百科:单例模式,也叫单子模式,是一种常用的软件设计模式。 在应用这个模式时,单例对象的类必须保证只有一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。二、为什么用单例实际项目中像数据库查询,日志输出,全局回调,统一校验等模块。这些模块功能单一,但需要多次访问,如果能够全局唯一,多次复用会大大提升性能。这也就是...

2019-09-25 17:41:30 656

空空如也

空空如也

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

TA关注的人

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