成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

正確掌握PHP JSON應(yīng)用

開(kāi)發(fā) 后端
PHP JSON應(yīng)用的開(kāi)始要從PHP5.2說(shuō)起。從這個(gè)版本一直到現(xiàn)在都增加了對(duì)JSON的支持。主要包含兩個(gè)函數(shù):json_encode和json_decode。

PHP語(yǔ)言在如今的互聯(lián)網(wǎng)世界中,已經(jīng)成為了一個(gè)非常熱門(mén)的應(yīng)用對(duì)象。許多程序員都開(kāi)始使用它作為開(kāi)發(fā)的基礎(chǔ)語(yǔ)言。不過(guò)對(duì)于AJAX來(lái)說(shuō),XML的解析更傾向于前臺(tái)Javascript的支持度。#t#

我想所有解析過(guò)XML的人,都會(huì)因樹(shù)和節(jié)點(diǎn)而頭大。不可否認(rèn),XML是很不錯(cuò)的數(shù)據(jù)存儲(chǔ)方式,但是其靈活恰恰造成了其解析的困難。當(dāng)然,這里所指的困難,是相對(duì)于本文的主角--PHP JSON應(yīng)用而言。

JSON為何物?我就不重復(fù)概念了。通俗的說(shuō),它是一種數(shù)據(jù)的存儲(chǔ)格式,就像PHP序列化后的字符串一樣。它是一種數(shù)據(jù)描述。比如我們將一個(gè)數(shù)組序列化后存放,就可以很容易的反序列化后應(yīng)用。JSON也是如此,只不過(guò)他搭建的是客戶端Javascript和服務(wù)端PHP的交互橋梁。我們用PHP生成JSON后的字符串,然后把這個(gè)字符串傳給前臺(tái)Javascript,Javascirpt就可以很容易的將其反JSON然后應(yīng)用。說(shuō)通俗點(diǎn),它真的很像數(shù)組。

言歸正傳,如何正確掌握PHP JSON應(yīng)用。PHP5.2開(kāi)始內(nèi)置了JSON的支持。當(dāng)然,如果低于這個(gè)版本的話,那么市面上有很多PHP版本的實(shí)現(xiàn),隨便下一個(gè)用就OK啦。現(xiàn)在主要是說(shuō)說(shuō)PHP內(nèi)置支持的JSON。很簡(jiǎn)單,兩個(gè)函數(shù):json_encode和json_decode(跟序列化很像啦)。一個(gè)編碼,一個(gè)解碼。先看看編碼的使用:

  1. $arr = array(   
  2. 'name' =>'陳毅鑫',   
  3. 'nick' => '深空',   
  4. 'contact' => array(   
  5. 'email' => 'shenkong at qq dot com',   
  6. 'website' => 
    'http://www.chenyixin.com',   
  7. )   
  8. );   
  9. $json_string = json_encode($arr);   
  10. echo $json_string;   
  11. ?> 

很簡(jiǎn)單的將一個(gè)數(shù)組JSON了。需要指出的是,在非UTF-8編碼下,中文字符將不可被encode,結(jié)果會(huì)出來(lái)空值,所以,如果你使用gb2312編寫(xiě)PHP代碼,那么就需要將包含中文的內(nèi)容使用iconv或者mb轉(zhuǎn)為UTF-8再進(jìn)行json_encode,上面輸出結(jié)果如下:

  1. {"name":"\u9648\u6bc5\u946b"
    ,"nick":"\u6df1\u7a7a","
    contact":{"email":"shenkong 
    at qq dot com","website":
    "http:\/\/www.chenyixin.com"}}  

我都說(shuō)了和序列化很像,你還不信。編碼后就要解碼,PHP提供了相應(yīng)的函數(shù)json_decode,json_decode執(zhí)行后,將會(huì)得到一個(gè)對(duì)象,操作如下:

  1. $arr = array(   
  2. 'name' =>'陳毅鑫',   
  3. 'nick' => '深空',   
  4. 'contact' => array(   
  5. 'email' => 'shenkong
     at qq dot com',   
  6. 'website' =>
     'http://www.chenyixin.com',   
  7. )   
  8. );   
  9. $json_string = 
    json_encode($arr);   
  10. $obj = json_decode($json_string);   
  11. print_r($obj);   
  12. ?>   

訪問(wèn)對(duì)象內(nèi)的屬性會(huì)吧?$obj->name,這樣子的,當(dāng)然,也可以把它轉(zhuǎn)位數(shù)組,方便調(diào)用啦:

  1. $json_string = json_encode($arr);   
  2. $obj = json_decode($json_string);   
  3. $arr = (array) $obj;   
  4. print_r($arr);  

PHP轉(zhuǎn)來(lái)轉(zhuǎn)去的用途不是特別大,除了緩存生成,感覺(jué)還不如直接存數(shù)組呢,不過(guò),當(dāng)你和前臺(tái)交互的時(shí)候,它的作用就出來(lái)咯,下面看看我怎么用Javascript來(lái)使用這段字符:

上面中,直接將這個(gè)字符串賦給一個(gè)變量,它就變成一個(gè)Javascript數(shù)組了(專業(yè)化術(shù)語(yǔ)應(yīng)該不叫數(shù)組,不過(guò)由于PHP的習(xí)慣問(wèn)題,我就一直叫數(shù)組好了,方便理解)。這樣,可以很方便的對(duì)arr進(jìn)行遍歷或者任意做你想做的事情了。寫(xiě)到這里,好像都沒(méi)提到AJAX哦?是哦,聯(lián)想一下,如果服務(wù)端返回的responseText用JSON過(guò)的字符串代替XML的話,前臺(tái)Javascript處理起來(lái)是不是很方便呢?狗皮膏藥就是這樣用的。

其實(shí)寫(xiě)到這里,除了數(shù)據(jù)的存儲(chǔ)格式不太一樣外,JSON和XML也沒(méi)什么太大區(qū)別哦,不過(guò)下面我說(shuō)的一點(diǎn)。雖然和XML沒(méi)多大關(guān)系,不過(guò),可以說(shuō)明PHP JSON應(yīng)用擁有更大范圍的應(yīng)用,那就是,跨域的數(shù)據(jù)調(diào)用。由于安全性問(wèn)題,AJAX不支持跨域調(diào)用,這樣要調(diào)用不同域名下的數(shù)據(jù),很麻煩哦,雖然有解決方案(stone在他的講座上提到過(guò)了代理啊什么的雖然聽(tīng)不懂但是知道能解決)。我寫(xiě)兩個(gè)文件,足以展示跨域調(diào)用了。

主調(diào)文件index.html

被調(diào)文件profile.php

  1. $arr = array(   
  2. 'name' => '陳毅鑫',   
  3. 'nick' => '深空',   
  4. 'contact' => array(   
  5. 'email' => 
    'shenkong at qq dot com',   
  6. 'website' => 
    'http://www.chenyixin.com',   
  7. )   
  8. );   
  9. $json_string = json_encode($arr);   
  10. echo "getProfile($json_string)";   
  11. ?>   

很顯然,當(dāng)index.html調(diào)用profile.php時(shí),JSON字符串生成,并作為參數(shù)傳入getProfile,然后將昵稱插入到div中,這樣一次跨域數(shù)據(jù)交互就完成了,是不是特別簡(jiǎn)單。既然PHP JSON應(yīng)用這么簡(jiǎn)單易用而且好用,還等什么呢?

責(zé)任編輯:曹凱 來(lái)源: CSDN
相關(guān)推薦

2009-12-04 15:43:03

PHP JSON擴(kuò)展

2009-12-07 14:38:14

PHP foreach

2009-12-08 17:06:40

PHP應(yīng)用odbc

2009-12-04 13:31:24

PHP缺少JSON包

2009-12-10 11:02:44

PHP函數(shù)eval()

2009-12-11 17:57:13

PHP應(yīng)用JSON

2009-12-04 14:23:33

PHP JSON加密函

2009-12-07 14:53:13

PHP抽象類應(yīng)用

2009-12-04 15:28:36

PHP JSON類庫(kù)

2009-12-04 14:29:09

PHP json_en

2009-12-11 16:39:08

PHP引號(hào)轉(zhuǎn)義

2009-12-08 15:48:19

PHP文章分頁(yè)

2009-12-03 13:10:06

2009-12-08 17:53:31

PHP const

2010-03-05 14:09:19

Python sys.

2010-01-11 15:54:48

VB.NET操作縮放圖

2009-11-17 17:38:37

PHP Session

2009-11-20 09:24:10

PHP多維數(shù)組排序

2009-12-10 14:18:22

PHP導(dǎo)出Word文檔

2009-12-08 17:15:43

PHP調(diào)用Java語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产区视频在线观看 | 亚洲欧美日韩高清 | 久久一久久 | caoporn免费在线视频 | 热99在线 | 一区二区三区四区免费在线观看 | 欧美久久一区 | 亚洲精品一区二区 | 成人国内精品久久久久一区 | 日本黄色片免费在线观看 | 国产精品视频不卡 | 欧美一区二区久久 | 国产精品久久久久久久免费大片 | 国产精品中文字幕在线观看 | 人人干视频在线 | 精品日韩一区二区 | 国产一区视频在线 | 国产成人精品网站 | 日本爱爱 | 第一区在线观看免费国语入口 | 午夜视频一区二区 | 高清黄色毛片 | 国产欧美日韩久久久 | 91欧美精品成人综合在线观看 | 精品一区二区三区在线观看国产 | 乳色吐息在线观看 | 日韩人体视频 | 亚洲一区视频在线播放 | 精品成人在线观看 | 久热m3u8 | 亚洲成人黄色 | 99久久久久 | 日韩精品在线免费观看 | 91看片免费版 | 51ⅴ精品国产91久久久久久 | 欧美日韩一区二区电影 | 日韩精品在线播放 | 国产免费人成xvideos视频 | 日韩在线免费观看视频 | 国产精品日韩欧美一区二区 | 九九热这里只有精品在线观看 |