-
PHP中GET参数的空格被编码为+号时,urldecode()无法将其还原为空格,应使用str_replace('+','',rawurldecode($val))组合处理,避免使用已弃用的urldecode()。
-
PHP中foreach遍历数组有两类语法:一是foreach($arrayas$value)仅获取值,适用于无需键名的场景;二是foreach($arrayas$key=>$value)同时获取键与值,适用于需键名判断或处理关联数组的情形。
-
Composer访问私有Git仓库需密钥,因其底层调用gitclone,而私有库要求身份认证;SSH密钥最稳妥,需生成、添加公钥至平台、使用SSH格式URL,并确保PHP进程用户对应密钥与权限。
-
Dreamweaver不运行PHP,其PHP版本设置仅影响语法高亮和代码提示:在“站点→管理站点→编辑→服务器→高级设置”中手动选择,须严格匹配实际部署环境的PHP版本,否则导致误报错或漏报错。
-
“找不到文件”错误主因是路径不正确,需检查当前工作目录、改用__DIR__或绝对路径、开启错误报告、排查open_basedir限制及文件权限与拼写。
-
去除PHP数组字符串双引号需分场景:一、避免JSON双重编码并正确解码;二、区分调试输出与真实数据;三、用str_replace清洗字面引号;四、用array_map+trim统一处理;五、检查旧版转义残留。
-
应使用is_array($arr)&&count($arr)>0判断PHP数组是否非空,兼顾类型校验与元素存在性;count()需配合isset()防Notice;empty()简洁但可能误判含0值数组;array_key_exists()适用于特定键校验;reset()+key()可安全检测首键。
-
strlen()统计字节数,将\n、\r各计1字节,\r\n计2字节;统计可见字符长需trim()预处理;查换行数用substr_count();含中文等多字节字符时须用mb_strlen()。
-
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替代,更安全可靠。