当前位置: 首页 > article >正文

【php】php json_encode($arr) 和 json_encode($arr, 320) 有什么区别?

在 PHP 中,json_encode() 函数用于将 PHP 变量(通常是数组或对象)编码为 JSON 格式的字符串。json_encode($arr)json_encode($arr, 320) 的区别主要在于第二个参数,该参数是一个由多个 JSON_* 常量按位或(|)组合而成的选项掩码,用于控制编码过程中的行为。

1. json_encode($arr)

当只传递一个参数时,即 json_encode($arr),它使用默认的编码选项对数组 $arr 进行编码。默认情况下,json_encode() 会将数组编码为标准的 JSON 字符串,遵循 JSON 规范。例如:

$arr = array('name' => 'John', 'age' => 30);
$json = json_encode($arr);
echo $json; 
// 输出: {"name":"John","age":30}

2. json_encode($arr, 320)

json_encode($arr, 320) 传递了第二个参数 320,这个数字实际上是两个 JSON_* 常量的按位或结果:JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES

  • JSON_UNESCAPED_UNICODE(常量值为 256):在默认情况下,json_encode() 会将非 ASCII 字符转义为 \uXXXX 格式。而使用 JSON_UNESCAPED_UNICODE 选项后,非 ASCII 字符将以原始的 UTF-8 编码形式输出。
  • JSON_UNESCAPED_SLASHES(常量值为 64):默认情况下,json_encode() 会对斜杠(/)进行转义,变为 \/。使用 JSON_UNESCAPED_SLASHES 选项后,斜杠将不会被转义。

因此,320 = 256 + 64,即 JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES。示例代码如下:

$arr = array('name' => '张三','url' => 'https://example.com'
);// 默认编码
$defaultJson = json_encode($arr);
echo "默认编码: $defaultJson\n"; 
// 输出: {"name":"\u5f20\u4e09","url":"https:\/\/example.com"}// 使用 320 选项编码
$optionJson = json_encode($arr, 320);
echo "使用 320 选项编码: $optionJson\n"; 
// 输出: {"name":"张三","url":"https://example.com"}

总结

  • json_encode($arr) 使用默认选项进行编码,可能会对非 ASCII 字符和斜杠进行转义。
  • json_encode($arr, 320) 使用 JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES 选项,非 ASCII 字符以原始 UTF-8 形式输出,斜杠不被转义。

相关文章:

【php】php json_encode($arr) 和 json_encode($arr, 320) 有什么区别?

在 PHP 中,json_encode() 函数用于将 PHP 变量(通常是数组或对象)编码为 JSON 格式的字符串。json_encode($arr) 和 json_encode($arr, 320) 的区别主要在于第二个参数,该参数是一个由多个 JSON_* 常量按位或(|&#x…...

【CubeMX+STM32】SD卡 U盘文件系统 USB+FATFS

本篇,将使用CubeMXKeil, 创建一个 USBTF卡存储FatFS 的虚拟U盘读写工程。 目录 一、简述 二、CubeMX 配置 SDIO DMA FatFs USB 三、Keil 编辑代码 四、实验效果 串口助手,实现效果: U盘,识别效果: 一、简述 上…...

node.js+兰空图床实现随机图

之前博客一直用的公共的随机图API,虽然图片的质量都挺不错的,但是稳定性都比较一般,遂打算使用之前部署的兰空图床,自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作,有兴趣的话可…...

【xdoj离散数学上机】T283

递归函数易错: 防止出现递归死循环! 题目 题目:求诱导出的等价关系的关系矩阵 问题描述 给定有限集合上二元关系的关系矩阵,求由其诱导出的等价关系的关系矩阵。 输入格式 第一行输入n,表示矩阵为n阶方阵&#xff0c…...

缓存机制与 Redis 在高性能系统中的应用

引言 随着互联网应用日益增长,用户对系统的响应速度和稳定性提出了更高的要求。在高并发、大流量的场景下,数据库的读取压力会急剧上升,导致数据库的响应速度变慢,甚至引发性能瓶颈。为了缓解这一问题,缓存机制成为了…...

C++之2048小游戏 第二期

不是,一天点赞就到15了?!好吧,那我更新一下 1. 逻辑 (真的有人会看吗?) 注:本文1.1章为AI生成,如有错误欢迎在评论其指出! 1.1 普通/最初逻辑 这里我们首…...

DeepSeek AI 满血版功能集成到WPS或Microsoft Office中

DeepSeek AI集成到 WPS或Microsoft Office中, 由于deepseek被攻击或者非常繁忙导致超时的服务器,所以可以用硅基流动部署的DeepSeek 。当然用官网的也可以。 使用 OfficeAI 插件集成(wps为例): 下载并安装 OfficeAI 插件:从可靠的软件下载平台…...

微服务SpringCloud Alibaba组件nacos教程(一)【详解naocs基础使用、服务中心配置、集群配置,附有案例+示例代码】

一.Nacos教程 文章目录 一.Nacos教程1.1 Nacos简介1.2 nacos基本使用直接下载打包服务源码方式启动 1.3 创建nacos客服端1.4 nacos集群配置1.5 nacos配置中心 1.1 Nacos简介 nacos是spring cloud alibaba生态中非常重要的一个组件,它有两个作用: 1:注册…...

2017年上半年软件设计师上午真题知识点整理(附试卷及答案)

以下是2017年上半年软件设计师上午真题的知识点分类整理,涉及定义的详细解释,供背诵记忆。 1. 计算机组成原理 CPU与存储器的访问。 Cache的作用: 提高CPU访问主存数据的速度,减少访问延迟。存储器的层次结构: 包括寄存器、Cache、主存和辅存…...

【MySQL】基础篇

1. MySQL中的NULL值是怎么存放的? MySQL的compact行格式中会用【NULL值列表】来标记值为NULL的列,NULL值不会存储在行格式中的真实数据部分。 NULL值列表会占用1字节空间,当表中所有字段都被定义成NOT NULL,行格式中就不会有NULL值…...

Kotlin 扩展函数与内联函数

Kotlin扩展函数 Kotlin 的扩展函数是 Kotlin 中非常强大且实用的功能。它允许你为现有的类添加新的方法,而不需要修改其源代码。这意味着你可以在已有的类上“扩展”新的功能,使用起来就像是原本就存在这些方法一样。 扩展函数的基本语法 fun 类名.方…...

uniapp中对于文件和文件夹的处理,内存的查询

目录 移动文件到指定文件夹 新增本地文件夹 设定本地文件过期时间,清除超时文件,释放内存 操作本地文件之----删除 uniapp获取设备剩余存储空间的方法 读取本地文件夹下的文件 移动文件到指定文件夹 function moveTempFile(tempFilePath, targetFo…...

【Android开发】安卓手机APP使用机器学习进行QR二维码识别(完整工程资料源码)

前言:本项目是一个 Android 平台的二维码扫描应用,具备二维码扫描和信息展示功能。借助 AndroidX CameraX 库实现相机的预览、图像捕获与分析,使用 Google ML Kit 进行二维码识别。为方便大家了解项目全貌,以下将介绍项目核心代码文件 MainActivity.java 和 AndroidManifes…...

企业文件防泄密软件哪个好?

在企业文件防泄密软件领域,天锐绿盾和中科数安都是备受认可的品牌,它们各自具有独特的特点和优势。 以下是对这两款软件的详细比较: 天锐绿盾 功能特点 集成性强:集成了文件加密、数据泄露防护DLP、终端安全管理、行为审计等数据安…...

mysql 参数max_connect_errors研究

1.在server端设置max_connect_errors3,超过3次连接错误就block mysql> set global max_connect_errors3; Query OK, 0 rows affected (0.00 sec) mysql> show variables like max_connect_errors; --------------------------- | Variable_name | Value…...

linux 下连接mysql(下)

case 表达式 表t1中的数据如下。 select * from t1; ---------------------------- | id | student_no | name | age | ---------------------------- | 3 | 202501 | ll | 10 | | 4 | 202502 | tt | 15 | ----------------------------如果学号是202501,…...

【Qt 常用控件】多元素控件(QListWidget、QTableWidgt、QTreeWidget)

**View和**Widget的区别? **View的实现更底层,**Widget是基于**View封装实现的更易用的类型。 **View使用MVC结构 MVC是软件开发中 经典的 软件结构 组织形式,软件设计模式。 M(model)模型。管理应用程序的核心数据和…...

Linux 远程文件复制传输-----scp/rsync/sftp

scp(Secure Copy Protocol)是基于 SSH 的安全文件传输工具,可用于在本地和远程计算机之间复制文件或目录。 1. scp(基于 SSH 复制文件) a. 复制文件到远程 从本地复制到远程 scp localfile.txt userremote_host:/remo…...

VS2022中.Net Api + Vue 从创建到发布到IIS

VS2022中.Net Api Vue 从创建到发布到IIS 前言一、先决条件二、创建项目三、运行项目四、增加API五、发布到IIS六、设置Vue的发布 前言 最近从VS2019 升级到了VS2022,终于可以使用官方的.Net Vue 组合了,但是使用过程中还是有很多问题,这里记录一下. 一、先决条件 Visual …...

Windows 11 搭建私有知识库(docker、dify、deepseek、ollama)

一、操作系统信息 版本 Windows 11 家庭中文版 版本号 23H2 安装日期 ‎2023/‎8/‎21 操作系统版本 22631.4460二、搭建思路 ollama拉取deepseek、bge-m3模型docker拉取dify的镜像dify链接ollama使用模型,并上传文件搭建知识库,创建应用 三、搭建步骤…...

安装OpenJDK21(linux、macos)

文章目录 安装OpenJDK21java21linux下安装配置mac下安装 安装OpenJDK21 java21 封神!Java 21正式发布了,迎来了史诗级新特性,堪称版本最强!!! 视频链接:https://www.bilibili.com/video/BV1E8…...

变分边界详解

起因 当时看VAE论文时有这么一段,但是看完直接一头雾水,这都那跟哪,第一个公式咋做的变换就变出那么一堆。网上搜了很多博客都语焉不详,只好自己来写一篇,希望能解答后来人的疑惑。 公式1 参考文章:证据…...

Softhsm储存安全数据性能整理

目标:存储百万条数据对象 测试方案一:总大小2GB,每个数据对象大小约512KB,总条数4096条; 测试方案一:总大小2GB,每个数据对象大小约256B,总条数8388608条; 测试环境&am…...

KaiOS 4.0 APN List 界面加载debug

问题背景 在列表选中APN进入编辑后,退出返回列表界面时无法焦点选中编辑的APN。 代码分析 路径:gaia/apps/settings/js/panels/apn_list/panel.js 分析SettingsPanel界面加载的步骤逻辑 onBeforeShow -> onShow -> onBeforeHide -> onHide return SettingsPanel(…...

Next.js 15【实用教程】2025最新版

官网 https://nextjs.org/docs/app/getting-started Next.js 简介 Next.js 由 Vercel 开发和维护,旨在解决单页应用(SPA)和多页应用(MPA)在性能和 SEO 上的不足。 核心特性 服务端渲染(SSR)--…...

2025-02-13 学习记录--C/C++-PTA 7-17 爬动的蠕虫

一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h>int main() {int N, U, D; // N: 井的总高度&#xff0c;U: 每分钟向上爬的高度&#xff0c;D: 每分钟滑下的高度int height 0; // 蠕虫当前的高度int minute 0; // 蠕虫爬行的时间sc…...

Elasticsearch+Logstash+Kibana可视化集群部署

文章目录 1.组件介绍简述2.集群规划3.Es组件部署4.Logstash组件部署5.Kibana组件部署6.Kibana的基础使用 1.组件介绍简述 Elasticsearch&#xff1a;开源实时分布式搜索和分析引擎&#xff0c;支持大规模数据存储和高吞吐量&#xff0c;提供丰富的搜索功能和可扩展性。 Logsta…...

React VS Vue

React 和 Vue 是目前最流行的两个前端框架&#xff0c;它们在设计理念、生态系统和开发体验上各有特点。以下是对 React 和 Vue 的全方位对比&#xff1a; 1. 核心设计理念 React 库而非框架&#xff1a;React 是一个用于构建 UI 的库&#xff0c;专注于视图层&#xff0c;其…...

DeepSeek+Excel 效率翻倍

2025年初&#xff0c;DeepSeek以惊人的效率突破技术壁垒&#xff0c;用极低的成本实现了与行业顶尖AI相媲美的性能&#xff0c;瞬间成为全球科技领域的热门话题。 那么AI工具的普及将如何改变我们的工作方式&#xff1f;Excel会被取代吗&#xff1f; 今天&#xff0c;珠珠带你…...

将Sqlite3数据库挂在内存上处理

创作灵感&#xff1a;最近把小学生的口算题从2位数改到3位数&#xff0c;100以内四则运算练习&#xff08;千纬数学&#xff09;再次更新&#xff0c;选取难题-CSDN博客要不断刷题目&#xff0c;以前100以内的加减乘除也是这样刷出来的&#xff0c;代码如下&#xff1a; impor…...