PHP-FPM 进程模型

logo 3 2025-03-27

php-fpm 多进程模型,同步阻塞,异步io 进程模型 PHP-FPM 是一个 PHP FastCGI进程管理器,包含 master 进程和 worker 进程两种进程: master 进程只有一个,负责监听端口,接收来自 Web Server 的请求, worker 进程则一般有多个 (具体数量根据实际需要配置), ...

详情...

urldecode & rawurldecode 说明

logo 2 2025-03-27

区别: urlencode把空格编码为 '+', rawurlencode()把空格编码为 '%20' urldecode() 会把 '+' 解码为空格,rawurldecode() 不会 注意 因为'+' 号是 base64的编码字符,当urldecode与base64_decode配合使用时,要用rawurldec ...

详情...

利用 http_build_query 字符串拼接生成签名注意事项

logo 2 2025-03-27

在与第三方 api 对接时,我们经常会遇到将传参按照键名进行 ASCII 升序排序,然后 构建 key=value 格式的字符串,并用 & 连接,最终将得到的字符串进行 md5 加密得到签名。 遇到这种场景 在 PHP 语言中我么一般会使用 http_build_query 将传参转换为字符串,但这里有一个点要 ...

详情...

PHP 中令人困惑的 strtotime

logo 10 2024-04-14

经常会有人被strtotime结合-1 month, +1 month, next month的时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题. 用的时候就会很慌... 如:今天是2018-07-31 执行代码: date("Y-m-d",strtotime("-1 month")) 怎么输 ...

详情...

PHP 中 try、catch、finally 用法总结

logo 19 2024-04-14

在PHP编程中,try, catch, 和 finally 是用于异常处理的关键字,它们共同构成了异常处理机制的核心部分。下面是对PHP中try, catch, 和 finally 用法的总结: 1. 结构与基本概念 try { // 尝试执行的代码块,可能抛出异常 // ... } catch (Ex ...

详情...

PHP 登录引入双因素认证服务

logo 31 2023-10-16

双因素认证(2FA)的介绍详见文档,此处不做介绍。 引入方法 1、安装扩展 composer require pragmarx/google2fa GitHub 仓库 2、给用户生成秘钥 在用户信息中添加秘钥字段 google2fa_secret,在用户登录后,若该字段为空说明没有关联双因素认证,跳转关联双因素认证逻 ...

详情...

PHP 编译安装 event 扩展

logo 47 2023-08-22

1、安装event扩展依赖的 libevent-dev 包 # ubuntu apt-get install libevent-dev -y # centos yum install libevent-devel -y 2、下载 event 扩展 访问 https://pecl.php.net/package/eve ...

详情...

PHP 编译安装 inotify 扩展

logo 50 2023-08-22

php 的 inotify 扩展提供了监控文件或目录变化的功能,可以用来实现,服务的热更新,或安全监控。 具体使用方法参考文档:https://www.php.net/manual/zh/ref.inotify.php](https://www.php.net/manual/zh/ref.inotify.php) 下面 ...

详情...

base64 & urlbase64 介绍

logo 73 2023-06-11

Base64是一种用64个字符来表示任意二进制数据的方法。 Base64的原理很简单,首先,准备一个包含64个字符的数组: ['A', 'B', 'C', ... 'a', 'b', 'c', ... '0', '1', ... '+', '/'] 然后,对二进制数据进行处理,每3个字节一组,一共是3x8=24bit。 ...

详情...

ubuntu 下编译安装PHP报错 configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.

logo 209 2023-02-13

问题 ubuntu 环境下使用 lnmp.org 下载的 lnmp 安装包编译安装PHP5.6时报错 configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure ic ...

详情...

GatewayWorker websocket 连接 1 分钟后自动断开原因?

logo 561 2022-10-07

1、GatewayWorker websocket 连接 1 分钟后自动断开 GatewayWorker 配置通过nginx转发,客户端定时(每60秒)发送心跳, 心跳间隔设置如下: // 心跳间隔 $gateway->pingInterval = 30; $gateway->pingNotResponse ...

详情...

PHP 将空数组统一 json 序列化为 [] 的弊端

logo 569 2022-09-19

在 PHP 中表示空的map或空数组都是以空数组形式,在转化为json数据时,会将空数组统一 json 序列化成 [],这样就存在一个类型问题。 以前我们在与前端交互时一般是与弱类型语言js交互,对于空数组转成 {} 还是 [] 区别不大。 但随着APP的流行,PHP很多时候不是跟浏览器端的JS交互,而是跟Java和 ...

详情...