-
需手动启用mod_expires和mod_headers模块,并在虚拟主机配置中用ExpiresActiveon和ExpiresByType设置规则,同时用Headerset补充Cache-Control头;未加载模块会导致ExpiresActive命令报错,响应头缺失则浏览器不缓存。
-
PHP实时输出基于HTTP短连接单向推送,适合短时进度展示;WebSocket基于独立TCP长连接双向通信,适用于实时交互场景。
-
shell_exec默认不工作是因为生产环境php.ini中disable_functions禁用了该函数;需删除列表中的shell_exec并重启PHP服务,而非Web服务器。
-
scandir适合快速列出单层目录内容,不递归;RecursiveDirectoryIterator支持真递归但需配合RecursiveIteratorIterator使用;glob简洁但存在安全与兼容性隐患。
-
phpEnv中OPcache未生效是因为未加载opcache.so扩展,需在Apache专用php.ini中启用zend_extension=php_opcache.dll、设opcache.enable=1及调优参数并重启Apache。
-
先用netstat-ano|findstr:80查PID,再用tasklist/FI"PIDeqX"查进程名;常见占用者包括IIS、Skype、Edge或另一Apache实例;可关闭应用或停系统服务临时释放,或修改Apache的Listen端口及SSL配置并更新相关依赖。
-
应先运行php-m|grepiconv确认是否已启用iconv模块;若需手动指定路径,须用--with-iconv=/path/to/libiconv(该路径下需同时存在include/iconv.h和lib/libiconv.{a,so}),或分别通过CFLAGS和LDFLAGS指定头文件与库位置。
-
rewrite指令必须写在匹配目标路径的location块内,如/image/应配location^~/image/;错误写入根location/会导致不匹配,且需确保重写后URI能被PHPlocation~.php$正确处理。
-
PHP链接嵌入失败主因是CDN拦截或重写,需五步解决:一、排除PHP路径缓存;二、关闭HTML重写功能;三、配置回源Host与协议一致;四、校验Referer与CORS白名单;五、启用动态加速及PHP专属路由。
-
PHP7.4箭头函数禁止访问$this,解析阶段即报错;而普通匿名函数可通过bindTo或在类方法中直接使用$this;需动态绑定对象上下文时必须用function(){},箭头函数仅支持按值捕获变量。
-
phpEnv自带的Nginx(通常为1.20+)默认已静态编译limit_req_module,支持限速;验证方式为执行nginx-V|findstrlimit_req,若输出含--with-http_limit_req_module即确认可用。
-
zip_open()返回false怎么查原因直接看zip_open()的返回值没用,它只返回资源或false,错误信息藏在背后。PHP不会自动抛异常,得手动补一层检查。先调用zip_open(),拿到返回值;如果不是资源,立刻用zip_error()+zip_status()查具体错误码常见返回false的真实原因:文件路径不存在、权限不足(尤其web服务器用户如www-data读不到)、文件被占用、ZIP格式损坏(比如传输中断导致不完整)别跳过is_re
-
PHP创建二维数组有五种方法:一、用数组字面量如$matrix=[[1,2],[3,4]];二、用array()函数构建;三、用循环动态填充;四、用关联数组嵌套定义配置;五、用array_fill()等函数批量初始化。
-
phpEnv的MySQL配置文件默认为C:\phpEnv\mysql\my.ini,需在[mysqld]段修改并重启服务生效;验证用SELECT@@global.max_allowed_packet;,PHP端还需执行SETSESSION确保连接生效。
-
本文介绍在PHP数组赋值过程中,如何将原始URL(如www.a.com)优雅替换为预设的友好名称(如'SiteA'),推荐使用关联数组映射方案,兼顾可读性、可维护性与扩展性。