-
需启用mod_rewrite模块、设置DocumentRoot指向public目录、在public下放置正确.htaccess文件,三者缺一不可;否则ThinkPHP路由无法接管请求,导致除首页外全部404。
-
phpEnv安装oci8必须手动编译:先配置OracleInstantClient并设环境变量,再用phpEnv提供的phpize和php-config编译;需在php.ini中启用extension=oci8.so及oci8.events=On,并严格使用EasyConnect格式连接,SQL执行须经oci_parse+oci_execute两步。
-
PHP输出小数时默认可能显示科学计数法,需用sprintf('%.10f',$num)强制固定小数位输出,如sprintf('%.8f',0.000000123)得"0.00000012",避免直接echo浮点数。
-
PHP无法直接打包为.exe,所谓“打包”实为第三方工具封装PHP运行时、脚本及Web服务器;内存高(200MB+)源于封装环境“全家桶”开销,而非PHP代码本身。
-
最常用且需谨慎使用的方式是eval(),但存在严重安全风险;更安全的替代方案包括手动实现双栈计算器或使用SymfonyExpressionLanguage等第三方库。
-
Yii对接微信小程序的关键是提供符合CORS、HTTPS、JSON、无session依赖的RESTAPI;需配置SSL证书、精确设置Access-Control-Allow-Origin、禁用session改用BearerToken鉴权、对齐URL路由规则、统一JSON响应格式并捕获异常返回标准结构。
-
可借助Rector工具自动化完成PHP语法升级:一、安装并初始化配置;二、指定目标PHP版本规则集;三、运行重构命令预览并执行修改;四、编写自定义规则扩展能力;五、验证结果并处理冲突。
-
PHP文件不能被远程直接打开查看源码,只能通过Web服务器解析执行;正常情况下浏览器访问返回执行结果而非源码,仅当服务器配置错误(如PHP未启用)时才会意外泄露源码。
-
苹果支付金额校验需严格比对in_app中price与本地订单金额、绑定product_id价格表、检查price_change_tag、验证bundle_id一致性、确保transaction_id与order_id原子绑定。
-
PHP图像亮度调节无效通常由GD库未启用、图像资源创建失败、亮度算法实现错误或输出流程不当导致。1.确认GD扩展已安装并启用,通过phpinfo()或命令行检查;2.确保图片路径正确、格式受支持且可读,使用file_exists和函数返回值验证资源创建;3.亮度调节需手动遍历像素,正确提取RGB分量并限制在0-255范围,避免频繁调用imagecolorallocate引发溢出;4.输出前设置header('Content-Type:image/jpeg'),使用imagejpeg输出并调用imagede
-
hasOne表示当前模型一条记录对应关联模型一条记录,如User→Profile;hasMany表示一对多,如Author→Article;均需在“拥有方”模型定义,参数顺序为关联类、外键、主键,TP6推荐用Profile::class和显式外键。
-
PHP文件上传安全关键在于切断执行路径:上传目录须置于Web根目录外,或在Web服务器层禁用脚本执行;必须用finfo_open(FILEINFO_MIME_TYPE)校验真实MIME,配合后缀白名单与文件名清理。
-
PHP8.4的Fiber已弃用,9.0彻底移除,须迁至原生async/await;FPM下调用Fiber::suspend()触发ZEND_MM_ASSERT是因内存上下文被强制销毁,非代码错误;替代方案是采用amphp/http-client或等待PHP9.0异步支持。
-
快速定位内存泄漏需用memory_get_usage(true)和memory_get_peak_usage(true)打点监测,避免array_merge复制、foreach值拷贝、PDO全量加载;大文件/数据应流式处理、分页查询、直接写磁盘;unset与gc_collect_cycles()配合可延缓OOM,__destruct和gc_disable()基本无效;CLI设memory_limit=-1不安全,须设合理上限并拆分子进程。
-
PHPSQLite3操作核心要点:变量插入必须用prepare()/execute()防SQL注入;open()需检查返回值防静默失败;批量插入须用事务或拼接多值提升性能,扩展功能基本不可用。