php的json_encode第二个参数学习及应用

博客介绍了PHP不同版本下的JSON编码处理方法。PHP 5.4以上可使用特定参数进行编码;PHP 5.3则需分步处理,包括将数组转对象编码、不转义斜杠、以字面编码多字节Unicode字符等,同时提醒慎用JSON_FORCE_OBJECT。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php5.4以上:

json_encode($data, JSON_FORCE_OBJECT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

php5.3
//数组转成对象编码,encode后[]变成{}
$data = json_encode($data, JSON_FORCE_OBJECT);
//不转义斜杠
$data = str_replace("\\/", "/", $data);
//以字面编码多字节 Unicode 字符(默认是编码成 \uXXXX)
$data = _unicodeToUTF8($data);
//\u变成多字节Unicode字符
function _unicodeToUTF8($str){
  return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
  create_function(
    '$matches',
    'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
  ), $str);
}

注意:JSON_FORCE_OBJECT //慎用,会把里面所有数组都转换成对象,即[]都会变成{}

转载于:https://www.cnblogs.com/hlsblog/p/8004727.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值