首页>建站相关>php对于json数据的编码与解码

php对于json数据的编码与解码

想实现一个wordpress后台,跟着阿树工作室的教程学习。自己php基础薄弱,看到利用类实现后台的章节就跟不上了,刚好学到js的极简方法实现一个类,考虑能否在前台用类实现页面,将页面数据汇总成json,统一提交给后台,这样就避开了不熟悉的php语法。

这样一来有一个问题,wp后台中的设置信息变成了json数据,每次提取数据的时候都需要将其解码为数组。多余的数据处理过程势必带来性能上的损耗,json的数组编解码也可能出现异常错误。总之,先尝试了再说。

PHP从5.2版本开始,原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。

json_encode()

利用该函数将php的数组或者对象转为json数据,下方代码编码一个数组:

<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);

//{"a":1,"b":2,"c":3,"d":4,"e":5}
?>

下方代码编码一个对象:

<?php
$test->site = 'abddb.com';
$test->id = 22;
$test->name = 'testname';
echo json_encode($test);

//{
//    "site":"abddb.com",
//  "id":22,
//  "name":"testname",
//}
?>

json_decode()

该函数主要是对 JSON 格式的字符串进行编码,mixed json_decode ( string $json [, bool $assoc ] ),接受一个 JSON 格式的字符串并且把它转换为 PHP 变量。

<?php 
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 
var_dump(json_decode($json)); 
var_dump(json_decode($json, true)); 
?>

通常情况下,json_decode()总是返回一个PHP对象,而不是数组;如果想要强制生成PHP关联数组,json_decode()需要加一个参数true,就能返回关联数组。

实际应用

在wordpress后台设置页尝试提交了一个json数组'August_options',利用get_option()函数取回后对其进行解码,最后输出数组的值。

<?php $options=json_decode(get_option('August_options'),true);?>
<?php echo $options["aa"];?>

标签: PHP

移动端可扫我直达哦~

推荐阅读

php 2025-03-09

京东联盟京粉接口测试程序

同样需要申请权限后访问,不然每日限额为0次,也可能是博主账户的原因,本想测试一下在主题做一个商品模块自动更新信息,暂时搁置吧 -_-~频道信息频道ID:1-好券商品, 2-精选卖场, 10-9.9包邮,15-京东配送, 22-实时热销...

建站相关 PHP

php 2025-03-08

关于jos-open-api-sdk的UnionOpenPromotionCommonGetRequest请求

尝试使用api自动转链失败,记录一下试错的过程,这个sdk的说明文档对于新手极其不友好,连sdk里的测试用例都报错。sdk用了lotus框架来管理依赖。博主安装并引入文件后很多案例多少有几个类不能正确被加载,最终是直接找到该类手动引入...

建站相关 PHP

php 2025-03-07

php中string字符串的拆分

想拆分一段由 1 和 0 组成的字符串, 作为一个条件判断的依据, 1 代表启用选项, 而 0 则代表取消该选项, 首当其冲的, 自然是先把字符串给拆分开来。循环取余可以利用循环取余依次加入数组;$num = 1234567; $re...

建站相关 PHP

php 2024-04-24

Php中数组array的定义增删等相关操作

PHP 中的 array 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化; 它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。 由于 arr...

建站相关 PHP

php 2024-04-20

php利用SimpleXML模块解析xml文件

本来想用一个xml文件来获取不断更新的数据,接触这个模块后,发现似乎不能在顶部插入节点,比如有个channel节点,插入子节点始终只能从底部插入,但博主又希望新的内容在channel节点的头部。每次重新装配节点似乎过于复杂,考虑利用j...

建站相关 PHP

php 2024-04-19

php获取远程xml文件并保存到本地

“自从联盟和部落并肩作战,共同抵抗燃烧军团的入侵已经过去了四年。”…错了,自从上次利用rm -rf清洗掉:“虾比比”站点的数据,已经过去了两年。曾经利用php获取远程文件并保存到本地的知识如同部落和联盟之间脆弱的协议,早已荡然无存。倒...

建站相关 PHP

php 2023-10-27

为博客文章添加是否已被百度收录的提示信息

部分主题里在文章的标题栏下方会显示一些文章的相关信息,比如目录啊,作者啊,文章的发布日期等等。其中也有包含文章是否被百度收录的,本身“小鸟数据”这个站点配置了“sitemap.xml”,也提交了百度,是否收录就我为鱼肉了。但是偶尔还是...

建站相关 PHP

php 2023-05-03

php中的替代语法switch的冒号写法

最早接触php语句,是尝试查看wordpress模板的源代码。所以相比常规的大括号写法,更为熟悉的反而是这类带冒号的写法。真正尝试过修改模板之后,会真切体会到这种书写方式的便利。它使得HTML和PHP混合页面代码更加干净整齐,也使代码...

建站相关 PHP

php 2022-10-25

php该用什么命令打印数组

对于wordpress的命令不熟悉,echo打印值的时候经常返回一个array对象。如果不知道array的内部结构,提取具体数据就无从下手,所以有时候我们会想要打印出数组的所有内容,以观察该数组的数据结构。php中有两个命令可以在屏幕...

建站相关 PHP

php 2022-10-22

php在线解压解决免费空间压缩包过大问题

用过一段国外的免费空间,一般都是白天访问速度凑合,一到晚上半天打不开后台页面,前台还是可以访问的,也就比白天慢几条街。因为白天要上班,所以一般博主也就晚上打开站点学习一下建站呀修改主题呀之类的操作,由于正常使用时间段完美被错开,所以最...

建站相关 PHP

php 2022-10-22

php中的单引号和双引号

解析变量上的区别PHP会解析双引号中的变量,而不会解析单引号中的变量。也就是说,如果使用单引号定义的字符串中出现变量,在输出时变量会被原样输出,不会解析成变量的值。而如果使用双引号定义的字符串中存在变量,在输出时变量会被解析为具体的值...

建站相关 PHP