PHP
特战小鸟
思路决定出路,气度决定高度,细节决定成败,性格决定命运。
展开
-
RBAC权限管理
在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。(3)数据抽象可以通过权限的抽象来体现,如财务操作用借款、存款等抽象权限,而不用操作系统提供的典型的读、写、执行权限。原创 2024-03-19 08:43:36 · 297 阅读 · 0 评论 -
Redis分布式锁
在分布式系统中,多个机器共同处理同一个任务时,为了避免出现多个机器同时对同一个资源进行操作的情况,需要对资源进行加锁。而分布式锁就是一种在分布式系统中对共享资源进行加锁的机制。原创 2024-03-18 09:21:18 · 385 阅读 · 0 评论 -
Redis与数据库一致性处理
Redis与数据库一致性处理:1、延迟双删;2、缓存三重删除 + 数据一致性校验 + 更新流程禁用缓存 + 强制读Redis主节点原创 2024-03-18 09:12:32 · 286 阅读 · 0 评论 -
Hash索引、B+树索引
索引是对数据库表的一列或者多列的值进行排序一种结构,使用索引可以快速访问数据表中的特定信息。数据结构主要有B+树和哈希表,对应的索引分别为B+树索引和哈希索引。InnoDB引擎的索引类型有B+树索引和哈希索引,默认的索引类型为B+树索引。原创 2024-03-14 13:53:02 · 740 阅读 · 0 评论 -
数据库的脏读、不可重复读、幻读
幻读和不可重复读的区别在于,不可重复是针对记录的update操作,只要在记录上加写锁,就可避免;概念:在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。不可重复读和脏读的区别是,脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是读取了前一事务提交的数据。概念:在事务A多次读取构成中,事务B对数据进行了新增操作,导致事务A多次读取的数据不一致。解决:如果一个事物在读的时候,禁止读取未提交的事物。原创 2024-03-13 13:41:57 · 161 阅读 · 0 评论 -
Redis垃圾回收
Redis的内存回收机制主要体现在以下两个方面:删除到达过期时间的键对象。内存使用达到maxmemory上限时触发内存溢出控制策略。三种删除策略。八种淘汰策略原创 2024-03-13 08:49:26 · 284 阅读 · 0 评论 -
PHP文件末尾要不要加结束符“?>”
2、如果这是一个被别人包含的程序,没有结束符,可以较少很多问题,比如header,setcookie,session_start这些动作之前不能有输出,如果不小心在?>后边加了空格,被包含之后就回报错,不写的话不会有此问题。1、如果在结束符后面还有空格或空行,那HTML源代码里面就有输出空格或者空行;特殊情况:当php嵌入html页面中的时候,结束符是必须的,用以区分代码块。3、可以直接把光标移到最后,接着编程。原创 2024-03-13 08:27:44 · 260 阅读 · 0 评论 -
商品秒杀方案-避免超售
悲观锁的方案采用的是排他读,也就是同时只能有一个进程读取到num的值。事务在提交或回滚之后,锁会释放,其他的进程才能读取。在查询之前就开启事务,所有处理完成后再提交。原创 2024-03-07 20:37:39 · 611 阅读 · 0 评论 -
常用设计模式及代码示例
工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。策略模式,意思就是定义一系列算法,把它们一个个封装起来,并且使它们可相互替换,使用得算法的变化可独立于使用它的客户,简单来讲就是,策略模式设计帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。针对一组算法,将每一个算法封装到具有共同接口的独立的类中,例如进入个人主页时,根据浏览者的不同,给予不同的显示与操作。原创 2024-03-05 08:29:17 · 736 阅读 · 0 评论 -
Nginx与PHP是如何通信的?
当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;Nginx本身不会对PHP进行解析,终端对PHP页面的请求将会被Nginx交给FastCGI进程监听的IP地址及端口,由php-fpm作为动态解析服务器处理,最后将处理结果再返回给nginx。Nginx通过反向代理功能将动态请求转向后端php-fpm,从而实现对PHP的解析支持,这就是Nginx实现PHP动态解析的原理。原创 2024-03-01 00:15:33 · 608 阅读 · 0 评论 -
多台Web服务器如何共享 Session
内存数据库还支持数据过期失效的机制,正好与session的过期机制对应,推荐使用redis内存数据库,因为它比memcache支持更多的数据类型,且支持内存数据备份到磁盘。用cookie会话机制替代session会话机制,将session数据保存到客户端浏览器的cookie中,这样同一个用户访问同一网站时,无论负载均衡到哪台web服务器,都不用再去服务器请求session数据,而直接获取客户端cookie中的session数据。1、将本该保存在web服务器磁盘上的session数据保存到cookie中。原创 2024-02-29 09:19:42 · 499 阅读 · 0 评论 -
常用数据结构
常用数据结构原创 2024-02-26 23:54:34 · 937 阅读 · 0 评论 -
ThinkPHP的四种URL模式
Thinkphp四种路由模式:1、普通路由;2、pathinfo()模式;3、rewrite路由;4、兼容路由原创 2024-02-26 23:47:14 · 284 阅读 · 0 评论 -
PHP代码控制http强制跳转到https
ThinkPHP用户直接加入到index.php 入口第一行。其他框架请加到入口某共公加载的文件中。方法一 https状态。原创 2024-02-26 23:36:14 · 180 阅读 · 0 评论 -
Laravel HTML转PDF-页码及自定义页脚
在做网站开发时,需要支持在线查看文件、填充数据,并生成带有数据的PDF文件,最简单的方式就是使用HTML转PDF。在线查看文件时,直接使用HTML渲染数据展示给用户,点击下载或者成成PDF时,将HTML转换成PDF,这样的好处是,文件内容和样式可以自己控制,还可以加一些其他属性,比如自定义页码,自定义页脚等。安装扩展包之后,会生成一个README.md文件,直接查看此文件,里面会详细介绍扩展包的具体用法,还包括简单的示例。1、安装HTML转PDF扩展包。原创 2024-02-26 08:59:55 · 520 阅读 · 0 评论 -
WordPress 禁用一级菜单的点击
项目使用的是news247主题,使用后台配置操作的生成的菜单,一级菜单和二级菜单都是使用的分类(Category)属性,主题自带的效果是,PC端鼠标移动到一级菜单之后,会自动展开二级菜单,一级菜单也是可以点击的,但是应用到移动端之后,没有鼠标移动事件,只能使用点击事件,点击一级菜单之后,页面就跳转了,不会展开二级菜单。禁用一级菜单的点击事件,将一级菜单的内容全部移动二级菜单,程序的改动最小。上述代码的目的是去掉一级菜单的url,达到禁用点击事件的目的。2、将内容全部移动到自定义的一级菜单下,直接拖动即可。原创 2024-02-22 09:53:01 · 412 阅读 · 0 评论 -
WordPress给文章添加自定义字段
在添加文章时,给文章添加一个自定义字段,之前所有的文章进行数据库批量处理,后续新增的文章,直接修改自定义字段的值即可。自定义字段存在表wp_postmeta中,首先循环出所有已发布的Post,然后编写插入的SQL语句,直接操作数据库。在做文章推荐的插件开发时,需要给文章增加一个权重的字段,但是此字段不是posts自带的。登录wordpress后台,进入新增Post页面,点击右上角的option。3、新增文章时,选择之前新增的字段,填写value值即可。2、刷新新增Post页面,在页面底部新增字段。原创 2024-02-22 10:13:55 · 565 阅读 · 0 评论 -
WordPress自定义插件开发实践-推荐文章配置插件
新开发一个首页推荐配置的插件,管理员登录WordPress后台后,能够选择需要推荐的文章,提交保存时,以此给文章增加一个自定义属性的值,比如post_weight。然后根据自定义属性修改首页的查询,展示配置的推荐文章。说明:本人开发的插件比较简单,功能单一,所以插件代码都写在一个文件里面,如果功能比较复杂,可以自行进行功能拆分。项目组需要在后台能够自己选择文章,配置首页文章推荐。2、创建recommend.php文件,编写插件代码。本人创建的目录名称是:recommend。原创 2024-02-22 11:26:24 · 518 阅读 · 0 评论 -
WordPress自定义文章的URL
发布文章之后,默认的URL带有文章的ID,格式为https://xxx.domain/?p=123,这对用户来说是不友好的,也不利于SEO优化,安全性也不高。SEO程序员要求文章的链接与文字内容相关。原创 2024-02-22 12:23:25 · 314 阅读 · 0 评论 -
Laravel html转pdf字体修改-开发环境与测试环境生成的pdf格式不一致
项目开发过程中,有一套默认字体方案,由前往后依次匹配,比如字体方案是:仿宋-华文楷体-宋体,开发环境已经安装了华文楷体和宋体,没有安装仿宋,那么html转pdf之后使用的就是华文楷体。laravel框架,使用fpdi+tcpdf扩展包,在开发环境调好样式之后,分别在开发环境和测试环境生成pdf,发现生成的pdf页码行间距等不一致,最后发现是字体不一致导致的。在编写生成pdf的html页面时,确定唯一的字体样式,并且保证开发环境和测试环境正式环境都已经安装确定的字体。原创 2024-02-25 22:43:36 · 197 阅读 · 0 评论