- 博客(45)
- 收藏
- 关注
原创 mysql 中文排序
MySQL CONVERT()提供一个在不同字符集之间转换数据的方法。 select name from area order by convert(name USING gbk) COLLATE gbk_chinese_ci asc首先,对name字段进行gbk编码,然后,对编码后的内容根据gbk_chinese_ci进行整理排序。这样得到的结果,英文是排在中文前面的,而且是根据拼音排序的。...
2021-06-16 16:07:42 1288
原创 502 Bad Gateway解决方案(ubuntu0.18.04、nginx、php7.2)
502 Bad Gateway解决方案在配置安装https网站时,总是显示“502 Bad Gateway”。总结有两个原因php7.2-fpm没有启动或正常运行nginx与php7.2-fpm没有正常通信解决办法1、先检查php7.2-fpm运行状态service php7.2-fpm status可以看出来php7.2-fpm已经正常启动。2、确保nginx与php7.2-fpm能正常通信需要检查:etc/php/fpm/pool.d/www.conf 中几个参数是否准确:
2021-01-05 15:40:24 1980 1
原创 MySql 几种常见的排序方式
1、单列排序SELECT * FROM table_name ORDER BY column_name;默认升序,降序后面接"DESC"即可。2、多列排序SELECT * FROM table_name ORDER BY column_name1, column_name2 DESC;首先按column_name1字段排序,若column_name1相等,则按column_name2排序。3、自定义排序SELECT * FROM table_name ORDE
2020-11-04 10:01:15 1152
原创 cgi、fast_cgi、php_fpm分别是什么
cgi、fast_cgi、php_fpm分别是什么CGI即通用网关接口,是 Web 服务器调用外部程序时所使用的一种服务端应用的规范。早期的 Web 通信请求的都是静态数据,比如图片、Html文档等,随着Web的发展,静态网站已经不能满足人们的需要,所以引入 CGI 以便客户端请求能够触发 Web 服务器运行另一个外部程序,客户端所输入的数据也会传给这个外部程序,该程序运行结束后会将生成的 HTML 和其他数据通过 Web 服务器再返回给客户端,利用 CGI 可以针对用户请求动态返回给客户端各种各样动态
2020-08-18 21:11:05 209
原创 Laravel框架和TP框架区别
一:渲染模版方式的不同:1:在Laravel框架里,使用return view()来渲染模版;2:ThinkPHP里则使用了$this->display()的方式渲染模版;二: 防跨站攻击1:在Laravel框架里,由于其考虑到了跨站请求伪造, 所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误;2:而TP框架则需要自己手动完成防止跨站攻击的代码;三:路由访问方式1:Lara
2020-08-07 14:23:16 1380 1
原创 PHP自定义校验函数
基础篇1.HTTP中GET与POST的区别 GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被Bookmark,而POST不可以。 GET请求会被浏览器主动cache,而POST不会,除非手动设置。 GET请求只能进行url编码,而POST支持多种编码方式。 GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。 GET请求在...
2020-05-25 21:47:31 364
原创 PHP生成随机字符串的几种方式
有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这4种方法生成。1:mt_rand<?phpfunction GetRandStr($length){ $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $len = strlen($str)-1; $randstr = ''; for ($i=0;$i<$length;$i++) {
2020-05-23 08:55:58 1462 1
原创 incr和incrBy计数器,防止并发请求
1、incr命令Redis Incr 命令将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在 64 位(bit)有符号数字表示之内。2、incrBy命令Redis Incrby 命令将 key 中储存的数字加上指定的增量值。如...
2019-12-20 11:37:31 3175
原创 thinkphp5中参数跳转的几种方式
一、表单提交 //无参数 <form action="{:url('Index/index/processNew')}" type="post">二、a标签链接 // 控制器中传过来的参数 <a href="{:url('Date/index/index'), ['id' => $item['id']}">三、js中的location跳转 // js...
2019-11-01 09:08:22 888
原创 PHP的几种运行模式
一:CGI协议模式cgi模式通用网关接口(Common Gateway Interface),它允许web服务器通过特定的协议与应用程序通信,通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器执行程序,再把服务器执行程序返回给HTML页。CGI的跨平台性能极佳,几乎可以在任何操作系统上实现。调用原理大概为:用户请求->Web服务器接收...
2019-10-25 14:01:37 362
原创 php设计模式——装饰模式
介绍装饰者模式(Decorator Pattern)允许你向一个现有的对象添加新的功能,同时又不改变其结构。 这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。主要角色抽象构件(Component)角色:定义一个独享接口,以规范准备接收附加职责的对象,从而可以给这些对象动态的添...
2019-03-01 14:38:27 225
原创 php设计模式——策略模式
策略模式定义:策略模式定义一系列的算法,将每个算法封装起来,并让它们可以相互装换。策略模式让算法独立于使用它的客户而独立变化。角色分析:抽象策略角色:策略类,通常由一个接口或者抽象类实现;具体策略角色:包装了相关的算法和行为;环境角色:持有一个策略类的引用,最终给客户端用。应用场景:多个类只区别在表现行为不同,可以使用策略模式,在运行的时动态选择具体要执行的行为。需要在不同...
2019-02-27 11:43:21 388
原创 Laravel Eloquent 小技巧
1. 获取原始属性当修改一条Eloquent 模型记录的时候你可以通过调用getOriginal()方法获取记录的原始属性$user = App\User::first();$user-&amp;amp;gt;name; // John$user-&amp;amp;gt;name=&amp;quot;Peter&amp;quot;; //Peter$user-&amp;amp;gt;getOriginal('n
2019-01-22 16:17:05 685
原创 shell学习笔记
(一) shell 脚本脚本格式: vim shell.sh #!/bin/bash //声明脚本解释器,这个‘#’号不是注释,其余是注释 #Program: //程序内容说明 #History: //时间和作者 shell脚本执行 sh script.sh chmod +x script.sh...
2019-01-16 16:10:15 217
原创 CentOS 7 安装 LNMP 环境 (mysql5.7)
下载MySQL rpm包wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装 rpm 包rpm -ivh mysql57-community-release-el7-11.noarch.rpm安装MySQLyum install -y mysql-community-servermysql...
2018-11-29 11:38:15 236
原创 CentOS 7 安装 LNMP 环境 ( nginx )
----- 此文章接 上一篇 :CentOS 7 安装 LNMP 环境 ( php71 ----------Nginx 安装源rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmNginx 安装yum install -y nginx管理Ng...
2018-11-28 17:37:51 480
原创 CentOS 7 安装 LNMP 环境 ( php71)
软件包仓库升级yum install -y epel-releasephp 安装源rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm执行yum makecache 将服务器软件信息保存在本地,提高搜索安装效率。搜索php71相关的软件包yum search php71安装PHPphp71 yum 源rp...
2018-11-28 16:59:36 1129
原创 SSH 服务器 免密登录
使用ssh-keygen生成私钥和公钥命令如下:ssh-keygen -t rsa参数 -t rsa 表示使用rsa算法进行加密,执行后,会在/home/当前用户/.ssh目录下找到id_rsa(私钥)和id_rsa.pub(公钥)实现免密登录需要本地的公钥放在服务器上的 authorized_keys 文件中。如果.ssh 目录下没有 authorized_keys 文件手动创建一个...
2018-11-28 16:09:17 2038
原创 centos7 防火墙设置
CentOS 7.0默认使用的是firewall作为防火墙firewall配置目录:/usr/lib/firewalld/services录中存放定义好的网络服务和端口参数,系统参数,不能修改。命令方式添加端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent命令含义:firwall-cmd:#是Linux...
2018-11-28 15:41:10 235
原创 centos安装php扩展swoole
swoole是一个PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。Swoole可以广泛应用于互联网、移动通信、企业...
2018-11-05 11:25:32 460
原创 laravel 任务调度测试
执行定时1:查看服务器上的定时条目 crontab -l2:新增或编辑cron 条目 crontab -e3:在里面新增我们写好的方法路径 * * * * * php (laravel项目的位置)/artisan schedule:run 1&amp;gt;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1写任务进入到laravel/app/consol...
2018-09-12 18:49:38 2695
原创 解决Mac OS X上的DNS_PROBE_FINISHED_NXDOMAIN问题
刚刚出现一个问题,尝试通过我的谷歌浏览器访问某个网站时,出现错误提示“网站不可用”。我还注意到错误代码DNS_PROBE_FINISHED_NXDOMAIN。方法1: 更改DNS设置转到苹果菜单,选择“ 系统偏好设置 ”,然后点击“ 网络”。” 输入密码(如果需要验证)以继续进行更改。 选择您要修改的网络连接:- 要更改以太网上的Google公共DNS设置,请点击“ 内置以太网 ”...
2018-09-06 13:18:40 25559 1
原创 array_walk_recursive 使用自定义函数处理数组中的每一个元素
array_walk_recursive 对数组中的每个成员递归地应用用户函数基本用法: bool arrary_walk_recursive(array $array, callable $callback [,mixed $userdata = NULL])将用户自定义函数callback应用到array数组中的每个单元,本函数会递归到更深层的数组中去,在callback...
2018-08-31 09:56:31 1902
转载 redis 优缺点 使用场景 及与Memcache的区别
1. 使用redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4) 丰富的特性:可用于缓存,消息,按key设置过期...
2018-08-02 19:20:05 1401
转载 Apache与nginx的优缺点比较
Apache与Nginx的优缺点比较1、nginx相对于apache的优点 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的...
2018-08-02 18:53:52 1128
原创 利用composer 实现路由加载
本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架。在 CI 中我学到了很多,其中对 MVC 的深入理解和对框架本质的理解对我的影响最大。从使用框架是为了提高开发效率的角度来看,框架的...
2018-08-01 16:57:18 1310 1
原创 PHP多继承
PHP多继承class Base{ public function sayHello(){ echo "hello "; }}trait SayWorld{ public function sayHello(){ parent::sayHello(); echo "world".PHP_EOL; }}tra...
2018-07-03 13:58:24 507
原创 Mysql 索引的注意事项
MySQL索引的注意事项:1:复合索引遵循前缀原则; 2:like查询,%不能在前,可以使用全文索引 3:column is null 可以使用索引 4:如果MySQL估计使用索引比全表扫描更慢,会放弃使用索引 5:如果or前的条件中的列有索引,后面没有,索引都不会被用到 6:列类型是字符串,查询时一定要给值加索引,否则导致索引失效...
2018-05-31 16:14:09 287
原创 Session的配置
在PHP中有很多关于session的 配置参数,用于指定session的工作模式,如session文件的存储位置、session的存储方式、Cookie参数的设置等。如下表所示列出了session常用的配置就含义。 配置项 默认设置值 含义 session.auto_start 0 0表示不自动开启session,如果设置为1,则文件不需要使用session_...
2018-05-22 12:09:13 2274
原创 Session的工作机制
session 技术相当于Cookie技术的升级版,Cookie的工作机制是将信息记录在客户端,而Session技术是将信息存放在服务器端,服务器存储信息的方式有很多,可以是文件、数据库和内存等,这里以文件的存储方式介绍session的工作步骤。(1)客户端第一次访问某服务器。 (2)服务器通过Cookie发送sessionID给客户端,并在服务器建立一个与sessionID同名的文件用于...
2018-05-22 11:38:58 1090
原创 主从复制的原理
用途及条件mysql主从复制用途实时灾备,用于故障切换读写分离,提供查询服务备份,避免影响业务主从部署必要条件:主库开启binlog日志(设置log-bin参数)主从server-id不同从库服务器能连通主库主从原理主从复制一共有三个进程,从库生成两个线程,一个I/O线程,一个SQL线程; I/O线程去请求主库的 binglog ,并将得到的binglog...
2018-05-16 15:07:40 260
原创 PHP超全局变量
变量名称 含义 $GLOBALS 储存全局作用于中的变量 $_SERVER 获取服务器的相关信息 $_REQUEST 获取POST和GET请求的参数 $_POST 获取表单的POST请求参数 $_GET 获取表单的GET请求参数 $_FILES 获取上传文件的变量 $_ENV 获取浏览器环境变量的数...
2018-05-15 21:51:23 260
原创 Sql注入和Xss攻击的了解
Xss攻击是跨站脚本工具 Csrf攻击是跨站请求伪造 sql注入 DDOS流量攻击?防止xss脚本攻击Xss攻击即跨站脚本攻击,通过篡改网页,注入而已的HTML脚本,控制用户浏览器进行恶意操作的一种攻击。 防止:script 注入,转义过滤script标签Htmlentities(把字符串转为Html实体)防止csrf跨转请求伪造CSRF的防御可以从服务端和客户端...
2018-05-15 19:12:56 2451 1
原创 Memcache 和 Redis 的读写性能(qps)如何?两者优缺点?Redis 支持哪些数据类型?Redis 如何持久化?
读写性能:memcache更加快速,在读取性能上比 Redis 快,缺点是仅支持字符串。Redis支持丰富的数据结构类型,字符串,散列(哈希),集合,有序集合,还支持订阅发布,地理位置等等。实际运用中可以redis,memcache结合,memcache可作为session存储的方式,session都是KV类型键值对。Redis 提供了多种不同级别的持久化方式:RDB 持久化可以在指定的时间间隔内...
2018-05-08 18:19:13 3208
转载 mac上php版本切换
目标:Mac 环境下完成 php 版本之间的切换在本地开发中很多时候我们需要多个版本的 php 开发环境。在公司中习惯用自己电脑开发的伙伴们,常常因为公司线上环境被迫更换php版本。但有不想降低自己的php版本,因为我要学习最新php版本的新特性。OK,那么下面我们就来解决这个实际应用的问题: 首先我们要理解的是php软件和php服务两个概念:在终端操作的时候我们用的是php软件在客户端通过web...
2018-04-28 18:51:06 601
原创 使用swoole,如何创建服务器
创建TCP服务器$serv = new swoole_server("127.0.0.1", 9501);创建UDP服务器$serv = new swoole_server("127.0.0.1", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);创建WEB服务器$http = new swoole_http_server("0.0.0...
2018-04-17 17:23:30 806
转载 redis数据淘汰策略
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰 volatile-rand...
2018-04-13 15:12:42 373
原创 Git 如何用某一分支的某文件,替换另一分支的某文件?
在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发。使用git merge 命令进行分支合并是通用的做法,但是git merge 合并的时候会将两个分支的内容完全合并,如果想合并一部分肯定是不行的。那怎么办?如何从其他分支merge指定文件到当前分支,git checkout 是个合适的工具。git checkout ...
2018-04-09 14:03:01 11041
原创 redis setex和set 的区别
SETEX命令 Redis字符串(String)命令SETEX key seconds value将value关联到key, 并将key的生存时间设为seconds(以秒为单位)。 如果key 已经存在,SETEX将重写旧值;这个命令类似一下两个命令:$redis->SET('key', 'value');$redis->EXPIRE('key','seconds...
2018-03-21 14:43:00 27808 1
原创 MySQL 性能优化神器 Explain 使用分析
MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如: explain select * from user_amortization where id>100229250;...
2018-03-20 15:13:58 413 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人