-
curl_multi_exec可实现PHP多URL并发请求,需为每个URL独立初始化cURL句柄并加入multi句柄,通过循环调用curl_multi_exec+curl_multi_select驱动执行,响应体用curl_multi_getcontent获取,超时等选项须设在单个句柄上,并逐个检查curl_errno判定真实错误。
-
filesize()获取字节数后需转为整型与字节阈值比较,上传文件优先用$_FILES['xxx']['size'],注意检查$_FILES'xxx'状态,大文件超2GB时在32位系统需用stream_stat()兜底。
-
getenv()不能可靠获取本机IP,因它仅读环境变量且SERVER_ADDR在不同SAPI下表现不一;推荐用gethostbyname(gethostname())跨平台获取主机名对应IPv4地址,或Linux下用ip命令读取指定网卡IP。
-
多语言网站分页必须保留语言参数、翻译所有文案、按语言隔离数据库查询、动态生成SEO标签。需显式拼接lang参数,用翻译函数处理文案,SQL加WHERElang=?,缓存key含语言,hreflang与canonical动态生成且缺页返回404。
-
PHP代码不执行是因为未通过Web服务器访问,而是直接双击打开导致浏览器以file://协议读取源码;必须配置DW的服务器模型并用http://localhost访问,同时确认Apache/PHP服务已启动且phpinfo()可正常显示。
-
合理连接超时应设为1500毫秒,即curl_setopt($ch,CURLOPT_CONNECTTIMEOUT_MS,1500);需配合DNS缓存、FPM超时配置及资源释放机制,避免链路雪崩。
-
还原转义字符串为原始数组有三种方法:一、用stripslashes配合explode逆向解析;二、用正则匹配提取非分隔符转义内容;三、改用json_encode/json_decode替代,更安全可靠。
-
Nginx需通过FastCGI将请求转发给PHP-FPM,配置错误会导致502或超时;PHP-FPM推荐dynamic模式,pm.max_children按内存(20–40MB/进程)设为50,socket通信优于TCP,fastcgi_buffers等参数须匹配响应大小,否则直接502。
-
PHP不播放视频,仅生成含正确URL路径的HTMLvideo标签;路径须为Web可达URL而非文件系统路径,需配置MIME类型、防路径遍历与XSS,大视频卡顿需Web服务器支持Range请求。
-
PHP的array_walk()不支持在回调中调用unset()删除数组元素,因其设计上禁止修改数组结构;尝试这样做会导致解析错误。正确做法是使用循环遍历变量名并逐个unset,或直接使用unset()多参数语法。
-
json_decode()返回null应先用json_last_error()查错,再trim()去空格、mb_convert_encoding()转UTF-8;建议设第二参数为true得数组,用??操作符安全取值;大JSON宜流式解析或预处理提取字段。
-
PHP文件未声明UTF-8导致浏览器误判编码而乱码,解决方法是在文件最顶部添加header('Content-Type:text/html;charset=utf-8');或在HTML中加meta标签。
-
PhpStorm连接MySQL失败的五大解决方法:一、通过Database工具窗口配置基础参数;二、手动添加MySQLJDBC驱动;三、修改JDBCURL适配SSL与时区;四、启用SSH隧道连接远程数据库;五、检查并授权MySQL用户权限与host限制。
-
应调整PHP-FPM为static模式、配置Nginx真实IP与HTTPS识别、关闭OPcache时间戳验证、剥离Set-Cookie头以利CDN缓存、启用Brotli压缩。
-
PHPsleep()期间输出不显示是因输出缓冲未刷新,需关闭output_buffering、调用ob_flush()和flush()、禁用Nginx缓冲并凑够1KB响应体。