201908-27 不会SQL注入,连漫画都看不懂了 HOT QL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情,这些学长们一般用的就是SQL注入方法。 继续阅读 >
201908-26 PHP后台实现用微信小程序登录,可学习下 HOT 服务端 需下载微信官方解密文件。 —— [ 用户数据的签名验证和加解密 ] 1.解压后会出现不同语言的文件包,这里用的是PHP,将文件夹放到vendor目录下。 2.根据登陆凭证 code 获取 session_key 和 openid。 3.数据签名校验。 4.数据解密。 5.生成第三方3rd_session并返回微信小程序端。 继续阅读 >
201908-26 Thinkphp5微信小程序获取用户信息接口的实例详解 HOT 首先在官网下载示例代码, 选php的,这里有个坑,官方的php文件,编码是UTF-8+的, 所以要把文件改为UTF-8。 然后在Thinkphp5 extend文件夹下建立Wxxcx命名空间,把官方的几个类文件放进去(这里要注意文件夹名, 命名空间名, 类名的, 大小写,一定要一样,官方的文件名和类名大小写不一样)然后是自己的thinkphp接口代码: 继续阅读 >
201908-26 性能优化:Mysql分表与分库使用场景以及设计方式 HOT 对于访问极为频繁且数据量巨大的单表来说,我们首先要做的就是减少单表的记录条数,以便减少数据查询所需要的时间,提高数据库的吞吐,这就是所谓的分表! 继续阅读 >
201908-26 一个在高并发下财务支付锁的问题分析 HOT 在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误。下面将分析一个财务支付锁的问题。希望对大家有所帮助。 继续阅读 >
201908-24 数据库读写分离提高性能详解,原理是什么 HOT MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中 的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。 继续阅读 >
201908-24 Session的生成机制、回收机制和存储机制详解 HOT 我们先来分析一下PHP中是怎么生成一个session的。设计出session的目的是保持每一个用户的各种状态来弥补HTTP协议的不足(无状态)。我们现在有一个疑问,我们都知道session是保存在服务器的,既然它用于保持每一个用户的状态那它利用什么来区别用户的呢?这个时候就得借助cookie了。当我们在代码中调用session_start();时,PHP会同时往SESSION的存放目录(默认为/tmp/)和客户端的cookie目录各生成一个文件。 继续阅读 >
201908-24 用redis实现电商项目中的秒杀商品功能 HOT 参与过抢购活动就知道,很明显的一点是商即便商品实际没有了也是可以下单成功的,但是在支付的时候会提示你商品没有了。 实现原理:list双向链表 使用redis队列,因为pop操作是原子的,即使有很多用户同时到达,也是依次执行.(mysql事务在高并发下性能下降很厉害,文件锁的方式也是). 继续阅读 >
201908-24 图解 SQL 里的各种 JOIN,看完不懂来找我! HOT 在各种问答社区里谈及 SQL 里的各种 JOIN 之间的区别时,最被广为引用的是 CodeProject 上 C.L. Moffatt 的文章 Visual Representation of SQL Joins,他确实讲得简单明了,使用文氏图来帮助理解,效果明显。本文将沿用他的讲解方式,稍有演绎,可以视为该文较为粗糙的中译版。 继续阅读 >
201908-23 用laravel实现打印出库单,有没有实现过? HOT 有时候你在实现一个出库订单之类的功能模块,这里也有可能要你的站点也实现相应的打印出库单预览,今天给大家分享用laravel(TP也行),PHP原生的也行。有需要的可以学习学习 继续阅读 >
201908-23 你们知道JWT是什么吗? HOT JWT遵循RFC7519,里面提到claim set的json数据中,自定义字段的key是一个string,value是一个json数据。因此随意编写吧,很灵活。 继续阅读 >
201908-23 微服务架构优势在哪,与传统服务又有什么区别呢? HOT 微服务架构并不是为了拆分而拆分,真正的目的是通过对微服务进行水平扩 展解决传统的单体应用在业务急剧增长时遇到的问题,而且由于拆分的微服务系统中专业的人做 专业的事,人员和项目的职责单一、低藕合、高内聚,所以产生问题的概率就会降到最小。 继续阅读 >
201908-22 用PHP调用微博接口实现微博登录,可参考学习下! HOT 在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站。这里以微博登录为例。微博登录包括身份认证、用户关系以及内容传播。允许用户使用微博帐号登录访问第三方网站,分享内容,同步信息。 继续阅读 >
201908-22 一个小工具帮你搞定实时监控Nginx服务器 HOT ngxtop是一个基于python的程序,可以在Python上安装。ngxtop通过实时解析nginx访问日志,并将结果(nginx服务器的有用指标)输出到终端。 继续阅读 >
201908-22 秒杀抢购时的超发,你是如何优化的 HOT 如果是MySQL数据库,可以使用它自带的锁机制很好的解决问题,但是,在大规模并发的场景中,是不推荐使用MySQL的。秒杀和抢购的场景中,还有另外一个问题,就是“超发”,如果在这方面控制不慎,会产生发送过多的情况。 继续阅读 >
201908-21 MySQL索引详解与索引的优化 HOT 索引优化,可以说是数据库相关优化、理解尤其是查询优化中最常用的优化手段之一。所以,只有深入索引的实现原理、存储方式、不同索引间区别,才能设计或使用最优的索引,最大幅度的提升查询效率! 继续阅读 >
201908-21 ThinkPHP5与无限分类的思路与技巧 HOT 首先声明一下,我们采用递归的方式来实现无限分类。但无限分类的实现,不是只是递归一种方式,还有一种是全路径方式,也可以实现,不过,这种方式通常用在全路径导航菜单中。所以,这里我们还是用最常见的递归函数来实现:无限分类。 继续阅读 >
201908-20 php队列的实现思路和详细过程,可参考学习下! HOT 1:往数据库中存取数据时,不要直接使用json_encode或者json_decode,容易造成一些意外问题,在代码中,我们定义了a2s和s2a两个方法,分别是处理数组转为字符串,和从数据库中读取字符串后转为数组。 2:当任务量比较大,同时服务器负载又没有充分利用的时候,可以使用多进程并发处理,在并发处理的时候需要考虑一个问题,就是如何避免重复,在这里我们使 用了,对队列任务进行标记,每次从数据库中读取一个进程需要处理的一批任务,使用数据库中id与批次标示取余等于0的方法来区分,避免不同批次的队列,重 复处理相同任务。 继续阅读 >
201908-20 PHP非递归遍历目录下所有文件,可以试一下! HOT 用非递归方式遍历某个目录下的所有文件,思路主要分三步: 1. 创建一个数组,将要遍历的这个目录放入;(其实就是创建了一个栈) 2. 循环处理这个数组,循环结束的条件是数组为空; 3. 每次循环,处理数组中的一个元素,并将元素删除,如果这个元素是目录,则将目录下所有的子元素加入数组; 继续阅读 >
201908-20 用PHP如何实现解析抖音无水印视频 HOT 很多时候你在douyin里看到了一个短视频,想复制下来自己编辑文字来发布,可是视频里的水印却是原者的。这个时候你想把水印去掉,你要如何做呢?这里提供PHP实现去除水印的主要方法,其实很简单。 继续阅读 >
201908-19 PHP基于Token的身份验证的方法,可参考学习下 HOT 两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。 继续阅读 >