亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP JSON數據處理實例程序用法

2024-05-04 21:47:28
字體:
來源:轉載
供稿:網友

在php中JSON數據處理最常用的就是直接使用json_encode()與json_decode()函數進行處理,就這兩個json處理函數給各位同學詳細介紹json在應用中的各種用法.

json_encode(),PHP數據->JSON

json_encode只有一個參數,參數除了resource 類型之外,可以為任何數據類型,但是我們一般是傳入數組,代碼如下:

  1. $arr = array(  
  2.     "name" => "manson",  
  3.     "age" => 23,  
  4.     "sex" => 1  
  5. );  
  6.    
  7. $json_str = json_encode($arr);  
  8. var_dump($json_str); 

得出的是json字符串:{"name":"manson","age":23,"sex":1},這時一般是把轉換后的字符串輸出到前端處理,常用于ajax做數據交互,或者一些前端模板的數據輸出。

json_encode需要注意的一個問題就是中文的編碼問題,假如PHP頁面的編碼是非utf-8的,在json_encode之前,必須把有中文內容的部分轉換成utf-8編碼,否則輸出到前端的時候會亂碼。解決的方法網上有很多,這里舉一個簡單的編碼轉換例子,代碼如下:

  1. $arr = array(  
  2.     "name" => "張三",  
  3.     "age" => 23,  
  4.     "sex" => 1  
  5. );  
  6. $arr['name'] = iconv("gbk","utf-8",$arr['name']);  
  7. $json_str = json_encode($arr); 

PHP數據,json_decode有兩個參數,第一個參數是待解碼的json字符串,傳入的一定要是一個合符規范的json格式,其實json_decode就是json_encode的逆過程,代碼如下:

  1. $json_str = '{"name":"manson","age":23,"sex":1}';  
  2. $arr = json_decode($json_str,true);  
  3. var_dump($arr); 

這里需要注意的是,json_decode的第2個參數傳的是true,意思是解碼后返回數組格式,假如傳false或是不傳第2個參數,解碼后將返回對象格式,例如上面的代碼返回對象格式是如下代碼:

  1. object(stdClass)#1 (3) {  
  2.   ["name"]=>  
  3.   string(6) "manson" 
  4.   ["age"]=>  
  5.   int(23)  
  6.   ["sex"]=>  
  7.   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}

如果直接調用:

  1. $obj = json_decode($s);  
  2. print_r($obj);   
  3. 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,那么我們可以使用下面語句獲取這個接口文件內容:

  1. $handle = fopen("/api.php?action=open_getBlogList&only_recommend=1&limit=5","rb"); 
  2. $content = ""
  3. while (!feof($handle)) { 
  4.     $content .= fread($handle, 10000); 
  5. 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 結構數據

很簡單,上面說過了,具體代碼如下:

  1. $handle = fopen("/api.php?action=open_getBlogList&only_recommend=1&limit=5","rb"); 
  2. $content = ""
  3. while (!feof($handle)) { 
  4.     $content .= fread($handle, 10000); 

fclose($handle);先打開這數據文件,然后把所有內容保存到 content 變量中,因為可以肯定 api 數據不會超過 10000個字符,所以用 10000 作為 fread 函數的第二個參數。這樣,api 返回的 JSON 數據就保存在了 content 變量中。

第三步,解析并輸出內容

使用下面代碼解析數據,然后調用輸出

  1. $content = json_decode($content); 
  2. foreach ($content->data as $key) { 
  3.     echo '<li><a target="_blank" href="'.$key->b_url.'">'.$key->b_title.'</a></li>'
首先對 content 變量中的 JSON  數據處理,然后變成 PHP 可以調用的數據,再使用 foreach 遍歷輸出這五條內容,按照我需要的 HTML 格式,將內容插入進去即可。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国精产品一区一区三区有限在线| 91久久夜色精品国产网站| 久久久久日韩精品久久久男男| 中文字幕久久久av一区| 日韩视频免费在线| 欧美日韩aaaa| 国产专区欧美专区| 亚洲精品日韩丝袜精品| 色噜噜久久综合伊人一本| 欧美激情网友自拍| 色综合五月天导航| 在线播放国产一区二区三区| 在线国产精品视频| 在线视频一区二区| 久久久999成人| 欧美另类交人妖| 欧美激情乱人伦一区| 欧美麻豆久久久久久中文| 久久资源免费视频| 国产精品高潮呻吟视频| 国产亚洲视频中文字幕视频| 成人国产精品久久久久久亚洲| 精品亚洲一区二区三区在线播放| 午夜美女久久久久爽久久| 精品美女久久久久久免费| 国产精品视频白浆免费视频| 精品久久久久久久久久国产| 亚洲天堂网站在线观看视频| 久久免费国产精品1| 国内精品一区二区三区| 欧美在线视频免费| 日韩在线不卡视频| 日本久久亚洲电影| 神马国产精品影院av| 亚洲日韩欧美视频一区| 欧美亚洲成人xxx| 欧美天天综合色影久久精品| 成人免费淫片aa视频免费| 国产精品成人观看视频国产奇米| 国产精品视频自拍| 久久91亚洲精品中文字幕| 久久大大胆人体| 亚洲a中文字幕| 亚洲精品白浆高清久久久久久| 亚洲淫片在线视频| 日韩中文字幕在线| 亚洲欧美国内爽妇网| 中文字幕av一区二区三区谷原希美| 中文字幕在线看视频国产欧美在线看完整| 性色av一区二区三区| 亚洲第一黄色网| 日韩电影中文字幕在线| 欧美一级电影免费在线观看| 亚洲va电影大全| 日韩电影中文 亚洲精品乱码| 日韩av在线网| 日韩av色在线| 日韩在线播放视频| 亚洲精品国产拍免费91在线| 91热福利电影| 日本欧美一二三区| 国产成人在线一区二区| 中文字幕日韩欧美精品在线观看| 亚洲欧美国产一本综合首页| 亚洲日本aⅴ片在线观看香蕉| 97在线免费观看视频| 日韩精品999| 亚洲欧美国产精品专区久久| 亚洲黄色av女优在线观看| 成人久久一区二区三区| 欧美午夜宅男影院在线观看| 91久久精品在线| 亚洲色图13p| 国产精品欧美日韩| 欧美成人激情图片网| 精品视频久久久久久久| 黑人巨大精品欧美一区二区免费| 亚洲黄色免费三级| 久久久精品欧美| 欧美性jizz18性欧美| 国产剧情日韩欧美| 精品美女国产在线| 久久国产精品99国产精| 欧美xxxx做受欧美.88| 亚洲一区二区中文| 韩日精品中文字幕| 中文字幕亚洲一区| 欧美日韩高清在线观看| 精品亚洲一区二区三区四区五区| 国产午夜精品视频免费不卡69堂| 亚洲男子天堂网| 国产91免费看片| 疯狂做受xxxx高潮欧美日本| 国产精品视频不卡| 91爱爱小视频k| 国产专区欧美专区| 亚洲区bt下载| 亚洲一区二区黄| 亚洲色图17p| 欧美另类精品xxxx孕妇| 超碰91人人草人人干| 日韩理论片久久| 狠狠久久五月精品中文字幕| 亚洲国产99精品国自产| 狠狠久久五月精品中文字幕| 在线视频免费一区二区| 日韩一区二区三区xxxx| 欧美一级视频在线观看| 日韩极品精品视频免费观看| 九九热视频这里只有精品| 亚洲午夜精品久久久久久性色| 欧美中文字幕第一页| 91精品国产免费久久久久久| 久热精品视频在线| 日韩欧美国产骚| 欧美中文字幕在线播放| 亚洲精品美女视频| 欧美日韩国产综合视频在线观看中文| 精品久久久久久中文字幕一区奶水| 伊人精品在线观看| 国产精品久久久久久久久男| 精品少妇一区二区30p| 亚洲国产精品视频在线观看| 国产精品久久久久久超碰| 日韩欧美中文第一页| 欧美电影免费播放| 欧美成人午夜免费视在线看片| 自拍亚洲一区欧美另类| 国产午夜精品全部视频播放| 欧美精品第一页在线播放| 在线精品播放av| 国产大片精品免费永久看nba| 欧美性视频精品| 欧美性xxxxx极品娇小| 国产日韩欧美在线视频观看| 亚洲精品综合精品自拍| 久久露脸国产精品| 在线观看成人黄色| 一区二区在线免费视频| 欧美国产精品人人做人人爱| 日韩欧美在线观看视频| 97婷婷大伊香蕉精品视频| 曰本色欧美视频在线| 欧美黑人国产人伦爽爽爽| 青草热久免费精品视频| 亚洲男女自偷自拍图片另类| 日韩av电影免费观看高清| 午夜精品在线视频| 亚洲国产精品一区二区久| 日韩欧美主播在线| 亚洲综合国产精品| 国产精品啪视频| 国产欧美精品日韩| 亚洲精品成人免费| 亚洲视频免费一区| 日韩中文字幕在线精品| 成人av.网址在线网站| 日韩中文字幕亚洲| 亚洲自拍偷拍在线| 亚洲男人第一av网站| 国模叶桐国产精品一区| 国产精品久久久久久久久借妻| 91久久精品美女| 国产成人啪精品视频免费网|