-
微信扫码登录需严格遵循OAuth2流程:重定向至微信授权页→回调获取code→用code换access_token和openid;注意redirect_uri必须HTTPS、完全匹配且URL编码,CI需关闭全局XSS过滤并正确获取GET参数。
-
应开启PHP错误显示并配置error_reporting为E_ALL,可通过修改php.ini中display_errors=On、重启服务器,或在脚本开头用error_reporting(E_ALL)和ini_set('display_errors','1')动态启用。
-
宝塔面板站点打开慢的关键在于文本资源压缩不足;需手动编译Nginx添加Brotli模块并正确配置,因宝塔内置Gzip开关仅作用于单站点且不支持Brotli,而原生Nginx无该模块,配置brotlion会静默失效。
-
解决PHP中文乱码需统一四层编码:文件保存为UTF-8无BOM;PHP脚本开头用header('Content-Type:text/html;charset=utf-8');禁用或设ApacheAddDefaultCharset为utf-8;php.ini中default_charset="UTF-8";MySQL连接指定charset=utf8mb4。
-
使用RESTClient可高效调试PHP接口,推荐Postman或VSCode插件,通过发送GET/POST请求测试API,配合PHP日志输出与集合保存用例,提升开发效率。
-
上传文件被当作PHP解析可致远程代码执行,常见路径有五:一、绕过后缀检查上传含代码的伪装文件;二、Apache下用.htaccess强制解析;三、NginxCVE-2013-4547路径解析漏洞;四、PHAR反序列化利用;五、IIS短文件名绕过。
-
PHP脚本不能直接作为cron任务控制硬件,必须由系统cron定期调用;需设可执行权限、用绝对路径、记录日志、校验硬件状态并确保用户权限(如加入gpio组),且cron最小粒度为1分钟。
-
未经授权解密他人PHP文件构成著作权侵权及刑法风险,违反《著作权法》《计算机软件保护条例》及《刑法》第二百八十五条,可能承担民事赔偿与刑事责任。
-
PHP有四种标量类型:1.boolean表示真假值,用于逻辑判断;2.integer存储整数,支持十进制、十六进制、八进制和二进制;3.float表示带小数或科学计数法的数字,不适用于精确计算;4.string表示字符序列,可用单引号、双引号或heredoc定义。
-
PHP_VERSION常量最稳定,编译时写死,任何环境均可直接使用;判断版本须用version_compare(),禁用字符串或浮点比较,避免预发布版出错。
-
PHPcURL默认不跟随302重定向,需显式设置CURLOPT_FOLLOWLOCATION为true,并注意open_basedir限制、手动解析Location头、使用Guzzle等更稳妥方案。
-
PHP中模糊日期补全有四种方法:一、date_parse()识别缺失字段后填充默认值;二、正则匹配结构并按组补全;三、DateTimeImmutable试错+modify链式补全;四、按字符串特征匹配预定义模板补全。
-
PHP8.5尚未发布,当前最新稳定版为PHP8.3;TCPDF是PHP8.1+推荐的PDF生成方案,需Composer安装、禁用默认页眉页脚、显式加载中文字体、本地化处理图片,并避免使用已不兼容PHP8.2+的FPDF。
-
hreflang标签必须由PHP动态生成且双向对称,语言代码需严格匹配ISO标准,URL须可访问并返回200,内容须实质性差异化,否则无效甚至导致降权。
-
PHP无法直接判断超线程是否开启,需通过解析/proc/cpuinfo或exec('lscpu')获取逻辑CPU数与物理核心数比值推断;Windows下基本不可行,容器等环境易误判。