PHP JSON数据处理实例程序用法_PHP教程
在php中JSON数据处理最常用的就是直接使用json_encode()与json_decode()函数进行处理,他下我就这两个json处理函数给各位同学详细介绍json在应用中的各种用法,希望对大家所有帮助。
json_encode() ,PHP数据->JSON
json_encode只有一个参数,参数除了resource 类型之外,可以为任何数据类型。但是我们一般是传入数组,如下例子
代码如下 | 复制代码 |
$arr = array( |
得出的是json字符串
{"name":"manson","age":23,"sex":1}
这时一般是把转换后的字符串输出到前端处理,常用于ajax做数据交互,或者一些前端模板的数据输出。json_encode需要注意的一个问题就是中文的编码问题,假如PHP页面的编码是非utf-8的,在json_encode之前,必须把有中文内容的部分转换成utf-8编码,否则输出到前端的时候会乱码。解决的方法网上有很多,这里举一个简单的编码转换例子
代码如下 | 复制代码 |
$arr = array( "name" => "张三", "age" => 23, "sex" => 1 ); $arr['name'] = iconv("gbk","utf-8",$arr['name']); $json_str = json_encode($arr); |
PHP数据
json_decode有两个参数,第一个参数是待解码的json字符串,传入的一定要是一个合符规范的json格式,其实json_decode就是json_encode的逆过程
代码如下 | 复制代码 |
$json_str = '{"name":"manson","age":23,"sex":1}'; |
这里需要注意的是,json_decode的第2个参数传的是true,意思是解码后返回数组格式,假如传false或是不传第2个参数,解码后将返回对象格式,例如上面的代码返回对象格式是
代码如下 | 复制代码 |
object(stdClass)#1 (3) { ["name"]=> string(6) "manson" ["age"]=> int(23) ["sex"]=> int(1) } |
对象格式相对于数组格式来说,取得对应数据的难度会增大,特别对于多层级数据结构,还是转换成数组形式为好,也就是json_decode第2个参数记得传true。
处理提交的JSON数据
POST方式(GET方式也要注意)向PHP提交了一个JSON数据,比如:
代码如下 | 复制代码 |
{"a":1,"b":2} |
在PHP中取出这个数据:
代码如下 | 复制代码 |
$s=$_POST['data'] ;//or $_GET['data'] |
然后这个串取出后是被转义的:
代码如下 | 复制代码 |
{"a":1,"b":2} |
如果直接调用:
$obj = json_decode($s); print_r($obj);
代码如下
复制代码
echo $obj->a;
是错误的,会报告错误.
如果$s直接定义:
代码如下 | 复制代码 |
$s='{"a":1,"b":2}'; |
则没有问题.
所以在PHP中处理JSON时需要进行一下转义处理:
代码如下 | 复制代码 |
$s=stripslashes($_POST['data']) ; |
这样再进行json解码就可以了.
PHP 获取接口内容
假设接口文件页面为:/api.php?action=open_getBlogList&only_recommend=1&limit=5 ,那么我们可以使用下面语句获取这个接口文件内容:
代码如下 | 复制代码 |
$handle = fopen("/api.php?action=open_getBlogList&only_recommend=1&limit=5","rb"); $content = ""; while (!feof($handle)) { $content .= fread($handle, 10000); } fclose($handle); |
这样 content 保存的就是 JSON api 内容。
PHP 解析 JSON 并显示
原始的内容是无法直接调用的,必须被 PHP 进行进一步处理,才能被调用显示在网页中。在 PHP 5.2 及后续版本中,使用 json_decode() 函数来解析 JSON 数据,将其转换成 PHP 可以调用的数据格式。例如:
代码如下 | 复制代码 |
$content = json_decode($content); |
解析之后呢,我们就可以按照 PHP 中调用数组数据的方法一样的调用 JSON 中的数据。这个调用方法需要按照具体的 JSON 数据格式来写,演示请看下面。关于 json_decode 函数的使用,具体看 PHP 手册,这里不再赘述:http://php.net/manual/en/function.json-decode.php
实战 api
细心的朋友会发现 潜行者m 博客的边栏最下面多了一个“友文推荐”模块,里面推荐了一些琼台博客的文章。
友文推荐是琼台博客倡议的一种博客之间交流方式,比传统的友情链接更有效,同时实现了博客内容互补。由于琼台博客的博客程序是他自己本人编写的,所以他提供了 JSON api 接口,可以获取到最新的可推荐的文章。
本人使用 PHP 获取这个 JSON 接口,然后输出到自己博客的边栏中,下面来实战操作一下。
第一步,查看 api 调用方式
根据文档,我使用了 /api.php?action=open_getBlogList&only_recommend=1&limit=5 这样的参数,意思就是调用五条他推荐的文章。
第二步,获取 api 结构数据
很简单,上面说过了,具体代码如下:
代码如下 | 复制代码 |
$handle = fopen("/api.php?action=open_getBlogList&only_recommend=1&limit=5","rb"); $content = ""; while (!feof($handle)) { $content .= fread($handle, 10000); } |
fclose($handle);先打开这数据文件,然后把所有内容保存到 content 变量中,因为可以肯定 api 数据不会超过 10000个字符,所以用 10000 作为 fread 函数的第二个参数。这样,api 返回的 JSON 数据就保存在了 content 变量中。
第三步,解析并输出内容
使用下面代码解析数据,然后调用输出
代码如下 | 复制代码 |
$content = json_decode($content); } |
首先对 content 变量中的 JSON 数据处理,然后变成 PHP 可以调用的数据,再使用 foreach 遍历输出这五条内容,按照我需要的 HTML 格式,将内容插入进去即可。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
