在先前的文章《五分鐘教你PHP中數組與字串怎樣相互轉換》中我們詳細的介紹了在PHP中數組與字串之間相互轉換的相關知識,本篇文章我們來看看PHP中JSON的相關知識,希望對大家有幫助!
在先前的文章中我們了解了PHP中需要怎樣才能完成陣列與字串之間的相互轉換,其中需要透過explode()
函數和implode()
函數來實現,接下來我們需要了解JSON的一些知識,看看PHP怎麼對變數進行JSON編碼。
想要進行PHP對變數進行JSON 的編碼首先我們需要了解一下什麼是JSON,下面我們一起來看看吧。
JSON是什麼
JSON 主要用於傳送數據,它是一種輕量級的數據交換的格式,它能夠完全的不同於PHP的程式語言來進行儲存和表示資料。
它比較容易閱讀和編寫,同時JSON對於機器的解析和生成也是比較簡單,透過JSON能夠十分有效的提高資料之間傳送的效率。
我們在PHP中已經有內建的JSON拓展,接下來我們就來看看PHP中的JSON函數,應該如何使用PHP語言來編碼JSON物件。
<strong><span style="font-size: 20px;">json_encode()</span></strong>
JSON編碼
json_encode()是用來對變數進行JSON編碼的,該函數的基本語法格式如下:
string json_encode ( $value [, $options = 0 ] )其中需要注意的是:執行
json_encode( )函數成功的話,回傳的結果就是JSON的數據,如果運行錯誤,回傳的結果是false;
$value表示的就是需要進行編碼的值,其中json_encode()比較特殊的是,只有UTF-8 編碼的資料對此函數有效,參數
options表示的是由常數組成的二進位的遮罩,這些常數有:
JSON_HEX_QUOT,
JSON_HEX_TAG,
JSON_HEX_AMP,
JSON_HEX_APOS,
JSON_NUMERIC_CHECK,
#JSON_PRETTY_PRINT, ##JJSON_ASH_JV ,
JSON_FORCE_OBJECT。
接下來我們透過範例來看PHP中json_encode()函數的使用,也就是將PHP的陣列元素轉換為JSON格式的數據,範例如下:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); $arr1 = array('一' => 1, '二' => 2, '三' => 3, '四' => 4, '五' => 5); echo json_encode($arr1); ?>輸出結果:
由上述範例我們能夠看到,透過json_encode()能夠將PHP的陣列元素轉換為JSON合適的數據,而且只有UTF-8 編碼的數據對此函數有效。
<?php $arr_2 = array(); // 三维数组 $arr_2['member']['lisi']['job'] = "worker"; $arr_2['member']['lisi']['age'] = 30; $arr_2['member']['wangwu']['job'] = "student"; $arr_2['member']['wangwu']['age'] = 10; echo json_encode($arr_2); //{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}} ?>輸出結果:
上述範例是透過函數將PHP中的陣列元素轉換,接下來我們看一下將PHP物件轉換為JSON格式的數據,範例如下:
<?php class Person{ public $name = "public name"; protected $ptName = "protected name"; private $pName = "private name"; public function sayName(){ return $this->name; } } $person1 = new Person(); echo json_encode($person1);//{"name":"public name"} ?>
輸出結果:
再來看一個範例:
<?php class Emp { public $name = ""; public $hobbies = ""; public $birthdate = ""; } $e = new Emp(); $e->name = "sachin"; $e->hobbies = "sports"; $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p"); $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03")); echo json_encode($e); ?>輸出結果:
<strong><span style="font-size: 20px;"></span>#JSON解碼</strong>
PHP中能夠透過json_decode()函數來將JSON格式的字元換轉換成PHP的變數格式,也就是解碼。下面我們來看看json_decode()函數的基本語法格式,範例如下:
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
其中需要注意的是:參數json_string
表示需要進行轉換也就是解碼的JSON格式的字串,就像
()函數一樣,這個解碼的資料也必須是UTF-8的編碼資料;參數assoc表示當參數是true的時候,回傳的結果是個數組,當參數是false是傳回的結果是物件;參數depth表示的是整數類型的參數,參數
options
表示的是二進位的掩碼,與
#()不同的是函數目前沒有支援這麼多,目前只支援 JSON_BIGINT_AS_STRING
。 接下來我們透過範例來看PHP怎麼解碼,範例如下:
<pre class='brush:php;toolbar:false;'><?php
$json = &#39;{"a":1,"b":2,"c":3,"d":4,"e":5}&#39;;
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?></pre>
輸出結果:
通过上述示例我们看到了通过json_decode()对JSON进行解码,上述是解码成数组,下面我们看一下解码成对象,示例如下:
<?php $jsonStr = '{"key1":"value1","key2":"value2"}'; print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2 ?>
输出结果:
由此我们便通过json_encode()函数与json_decode()函数完成了PHP数据与JSON的编码与解码。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上是PHP中JSON的編碼與解碼(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境