PHP使用json_encode生成JSON时/前自动添加\转义的解决方法
问题原因
json_encode()默认转义斜杠/是PHP的预设行为,该写法完全符合JSON官方规范,转义后的内容不会影响JSON的正常解析使用,仅在视觉上和未转义的路径写法有区别。如果需要输出不带反斜杠转义的斜杠,直接修改函数调用参数即可实现。
解决方法
在调用json_encode时,除了已使用的JSON_PRETTY_PRINT参数外,追加JSON_UNESCAPED_SLASHES常量,两个参数通过按位或运算符|组合传入即可。
修改对应代码行:
// 原代码 $jsonfile = json_encode($data, JSON_PRETTY_PRINT); // 修改为 $jsonfile = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
修改后重新运行函数,生成的JSON文件中路径部分的斜杠就不会再被自动转义。
代码其他问题提示
- 你贴出的函数首行
$dir="img/e-commerce/product/"末尾缺少分号,会直接触发PHP语法报错,运行前需要补全。 - 代码中使用的
mysql_query、mysql_fetch_array等mysql_*系列函数已在PHP 7.0及以上版本被完全移除,且存在严重的SQL注入安全风险,建议替换为mysqli扩展或PDO进行数据库操作。
内容的提问来源于stack exchange,提问作者Willie Sandi
相关产品推荐
相关产品推荐

