-
PHP扩展不生效主因是未重启PHP-FPM且改错php.ini路径;需通过phpinfo()确认Web端实际加载的配置文件路径,修改后必须重启对应版本PHP-FPM进程而非仅重载Web服务器配置。
-
Hyperf3.x多Redis连接需三步:一、在redis.php中用不同键名(如cache、queue)定义多组完整配置,driver显式声明;二、在dependencies.php中按Hyperf\Redis\Redis::class.'.cache'=>RedisFactory格式显式绑定;三、业务中以$redisCache命名注入对应连接。
-
MySQL8.0升级后连接报错“Plugincaching_sha2_passwordcouldnotbeloaded”是因旧客户端不支持新默认认证插件,需执行ALTERUSER...IDENTIFIEDWITHmysql_native_password切换认证方式并FLUSHPRIVILEGES生效。
-
Webman的reload仅支持config/autoload.php中files列表声明的辅助文件(如functions.php)、纯函数式route.php路由,不支持配置文件、控制器类、vendor依赖及闭包路由,修改后需restart。
-
Symfony依赖注入容器是基于编译期解析的确定性系统,而非运行时猜测:它在cache:clear时完成服务定义合并、依赖图构建与循环检测,错误提前暴露;依赖解析、类型匹配和引用注入均在ContainerBuilder::compile()阶段静态完成,生成硬编码的PHP容器类。
-
cURL初始化后必须设置CURLOPT_RETURNTRANSFER=true以返回响应字符串而非直接输出,否则导致页面错乱或JSON解析失败;需同时设置超时参数、正确处理POST数据格式、SSL验证及错误检查。
-
PHP脚本超时的真正控制点是max_execution_time和set_time_limit(),而非浏览器连接状态;前者为php.ini全局限制(Web默认30秒,CLI默认0),后者可运行时重设但仅作用于当前请求。
-
可压缩验证码图片体积:一、降低分辨率与尺寸;二、改用PNG-8或GIF并限色;三、关闭抗锯齿、简化干扰元素;四、启用Gzip输出压缩;五、使用极简字体与字符集裁剪。
-
PHP中需据扩展选方法:一、mysqli面向对象用fetch_all(MYSQLI_ASSOC)得关联数组;二、mysqli过程式用mysqli_fetch_array($r,MYSQLI_NUM)逐行建索引数组;三、PDO用fetchAll(PDO::FETCH_ASSOC)获关联数组;四、PDO用fetchAll(PDO::FETCH_COLUMN)得单字段一维数组;五、mysqli_fetch_row逐行构建数字索引二维数组。
-
LimitRequestBody必须在XAMPP的虚拟主机或Directory等作用域内配置,如httpd-vhosts.conf中<virtualhost>块内;全局httpd.conf顶部设置无效,且需与PHP的post_max_size、upload_max_filesize协同设定并重启服务。
-
Laravel中需通过多队列+显式分发+多Worker权重配置实现延迟与优先级协同:一、按high/default/low队列分流并用onQueue()和delay()组合;二、用不同--sleep/--max-jobs启动独立Worker;三、任务类设$queue/$delay属性固化默认策略;四、高阶场景可用RedisZSET手动调度;五、周期性延迟任务可结合schedule()触发。
-
最可靠方法是用ob_start()捕获输出并匹配标志性HTML片段,如<title>PHPVersion</title>或<h1>PHPCredits</h1>,同时检查disable_functions配置及CLI模式差异。
-
PHP数组内存过高主因是引用、循环引用、未释放临时数组及序列化残留,需用memory_get_usage(true)定位增长点、Xdebug快照分析引用关系,并避免JSON解码膨胀和键名冗余。
-
phpEnv下安装Swoole须手动源码编译:先确认phpenvversion及对应phpize、php-config路径,再./configure--with-php-config=指定路径,make&&makeinstall后,在php--ini显示的php.ini中添加extension=swoole.so。
-
MySQL死锁本质是多个事务以不同顺序争抢同一组行锁形成的循环等待;高发于InnoDB行锁+多语句事务,主因是加锁顺序不一致、间隙锁扩大、长事务及索引缺失。