-
PHP-FPM多版本必须使用唯一监听地址,推荐改用127.0.0.1:9001、9002等不同端口,删除listen.owner/group/mode三行,并同步更新Nginx配置中fastcgi_pass指向对应端口。
-
Imagick比GD更适合上传后压缩,因其能保留EXIF方向、ICC色彩配置等元数据,支持WebP编码及CMYK转RGB,而GD会丢失Orientation信息且不支持WebP。
-
PHP8.0+应直接使用内置函数str_starts_with和str_ends_with,它们底层为C实现、严格大小写敏感、不修改原字符串、返回布尔值,且空字符串视作所有字符串的前缀。
-
模型生成后必须检查表名、主键、时间戳三件事:设$table指定真实表名,$primaryKey指定主键字段,$timestamps=false关闭自动时间戳。
-
本文介绍一种使用递归函数精确统计PHP数组中所有嵌套子数组(包括多层嵌套)数量的方法,适用于任意深度的混合类型数组,代码简洁可靠,可直接用于生产环境。
-
PHP命名空间必须与文件路径、自动加载规则、调用上下文严格对齐:namespace须位于文件首行(前仅允许declare语句),文件须为无BOMUTF-8;use导入类而非路径,同名类需as别名;调用时非限定名会按当前命名空间解析,全局函数/常量建议加反斜杠前缀;PSR-4要求类名、命名空间、文件路径三者完全匹配。
-
不能将极光和个推SDK同时加载进一个PHP进程,因为二者均采用静态单例模式重写HttpClient类,后加载的会覆盖前者全局实例,导致网络层错乱、返回401或空响应。
-
最常用且性能最好的批量更新方式是单条UPDATE配合WHEREidIN(...),适用于所有记录更新相同字段值;若字段值不同,则需用INSERT...ONDUPLICATEKEYUPDATE、PDO预处理加事务或分批处理等策略。
-
宝塔面板8.xPHP扩展装不上是因为其PHP为自编译版本,与系统包不兼容;应使用remi源下载对应PHP版本的RPM包,解包提取.so文件复制到宝塔PHP模块目录,并配置ini后重载服务。
-
安装phpEnv应选纯英文无空格路径(如D:\dev\phpenv),避免C:\ProgramFiles;phpenv需先安装php-build插件,Windows下须配php.ini及扩展路径,且phpEnv与phpenv不可混用。
-
phpEnv局域网访问需同步修改Apache的Listen指令为Listen80(或0.0.0.0:80)、目录块中Requirelocal改为Requireallgranted,并在Windows防火墙添加放行80端口的入站规则,同事须用你的实际局域网IP(如192.168.1.100)访问。
-
连接池“空了”或“连不上”主因是资源耗尽、配置错位或连接泄漏,而非代码错误;需检查MySQL参数、连接归还逻辑、池大小配置、task进程稳定性、连接有效性验证及swoole_table容量。
-
使用array_reverse($array,true)可倒序排列数组并保留键值关系;若按键名倒序,可用krsort;复杂场景可通过array_keys与array_values结合array_combine灵活重组。
-
PHPWord是PHP生成.docx最稳方案,需用composerrequirephpoffice/phpword安装,样式参数必须传数组(如['bold'=>true])、中文字体显式指定、设正确header、图片用绝对路径或dataURI、大数据量后及时unset释放内存。
-
首先检查PHP版本是否符合项目要求,通过php-v查看当前版本并对比项目文档或composer.json中的版本约束;若不匹配,使用phpenv或Docker切换版本。接着验证必要扩展如mysqli、curl等是否启用,可通过phpinfo()页面确认,并在php.ini中取消对应extension注释后重启服务。然后检查php.ini配置,调整memory_limit、upload_max_filesize、post_max_size及date.timezone等参数以满足项目需求。再排查disable