欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php中對(duì)內(nèi)置函數(shù)json_encode和json_decode的異常處理

 更新時(shí)間:2021年07月05日 09:50:50   作者:濤的博客  
這篇文章主要介紹了php中對(duì)內(nèi)置函數(shù)json_encode和json_decode的異常處理,本篇文章通過(guò)定義描述和列舉表格以及最后代碼的展示,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

在php中,json_encode和json_decode是很常用的函數(shù),具體用法可以查看相關(guān)文檔,這里主要說(shuō)一下錯(cuò)誤處理。

平時(shí)我們?cè)谑褂眠@兩個(gè)方法的時(shí)候可能沒(méi)怎么注意錯(cuò)誤處理,有時(shí)候如果傳入的參數(shù)格式不正確就會(huì)導(dǎo)致報(bào)錯(cuò)了。下面是錯(cuò)誤處理的方式:

json_last_error — 返回最后發(fā)生的錯(cuò)誤,如果有,返回 JSON 編碼解碼時(shí)最后發(fā)生的錯(cuò)誤。

int json_last_error ( void )
常量 含義 可用性
JSON_ERROR_NONE 沒(méi)有錯(cuò)誤發(fā)生
JSON_ERROR_DEPTH 到達(dá)了最大堆棧深度
JSON_ERROR_STATE_MISMATCH 無(wú)效或異常的 JSON
JSON_ERROR_CTRL_CHAR 控制字符錯(cuò)誤,可能是編碼不對(duì)
JSON_ERROR_SYNTAX 語(yǔ)法錯(cuò)誤
JSON_ERROR_UTF8 異常的 UTF-8 字符,也許是因?yàn)椴徽_的編碼。 PHP 5.3.3
JSON_ERROR_RECURSION One or more recursive references in the value to be encoded PHP 5.5.0
JSON_ERROR_INF_OR_NAN One or more NAN or INF values in the value to be encoded PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE 指定的類(lèi)型,值無(wú)法編碼。 PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME 指定的屬性名無(wú)法編碼。 PHP 7.0.0
JSON_ERROR_UTF16 畸形的 UTF-16 字符,可能因?yàn)樽址幋a不正確。 PHP 7.0.0
<?php
// 一個(gè)有效的 json 字符串
$json[] = '{"Organization": "PHP Documentation Team"}';
 
// 一個(gè)無(wú)效的 json 字符串會(huì)導(dǎo)致一個(gè)語(yǔ)法錯(cuò)誤,在這個(gè)例子里我們使用 ' 代替了 " 作為引號(hào)
$json[] = "{'Organization': 'PHP Documentation Team'}";
 
 
foreach ($json as $string) {
    echo 'Decoding: ' . $string;
    json_decode($string);
 
    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - No errors';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Maximum stack depth exceeded';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Underflow or the modes mismatch';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unexpected control character found';
        break;
        case JSON_ERROR_SYNTAX:
           echo ' - Syntax error, malformed JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
        break;
        default:
            echo ' - Unknown error';
        break;
    }
 
    echo PHP_EOL;
}

php官方參考文檔:https://secure.php.net/manual/zh/function.json-last-error.php

到此這篇關(guān)于php中對(duì)內(nèi)置函數(shù)json_encode和json_decode的異常處理的文章就介紹到這了,更多相關(guān)php處理json_encode和json_decode異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用composer命令加載vendor中的第三方類(lèi)庫(kù) 的方法

    使用composer命令加載vendor中的第三方類(lèi)庫(kù) 的方法

    這篇文章主要介紹了使用composer命令加載vendor中的第三方類(lèi)庫(kù)的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • php反引號(hào)與短標(biāo)簽?zāi)_本示例

    php反引號(hào)與短標(biāo)簽?zāi)_本示例

    這篇文章主要為大家介紹了php反引號(hào)與短標(biāo)簽的腳本示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • PHP中用mysqli面向?qū)ο蟠蜷_(kāi)連接關(guān)閉mysql數(shù)據(jù)庫(kù)的方法

    PHP中用mysqli面向?qū)ο蟠蜷_(kāi)連接關(guān)閉mysql數(shù)據(jù)庫(kù)的方法

    下面小編就為大家?guī)?lái)一篇PHP中用mysqli面向?qū)ο蟠蜷_(kāi)連接關(guān)閉mysql數(shù)據(jù)庫(kù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • laravel郵件發(fā)送的實(shí)現(xiàn)代碼示例

    laravel郵件發(fā)送的實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了laravel郵件發(fā)送的實(shí)現(xiàn)代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • PHP下用Swoole實(shí)現(xiàn)Actor并發(fā)模型的方法

    PHP下用Swoole實(shí)現(xiàn)Actor并發(fā)模型的方法

    這篇文章主要介紹了PHP下用Swoole實(shí)現(xiàn)Actor并發(fā)模型的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Yii框架實(shí)現(xiàn)郵箱激活的方法【數(shù)字簽名】

    Yii框架實(shí)現(xiàn)郵箱激活的方法【數(shù)字簽名】

    這篇文章主要介紹了Yii框架實(shí)現(xiàn)郵箱激活的方法,基于郵箱發(fā)送郵件實(shí)現(xiàn)數(shù)字簽名的激活功能,需要的朋友可以參考下
    2016-10-10
  • PHP生成json和xml類(lèi)型接口數(shù)據(jù)格式

    PHP生成json和xml類(lèi)型接口數(shù)據(jù)格式

    在做數(shù)據(jù)接口時(shí),我們通常要獲取第三方數(shù)據(jù)接口或者給第三方提供數(shù)據(jù)接口,而這些數(shù)據(jù)格式通常是以XML或者JSON格式傳輸,本文將介紹如何使用PHP生成XML格式數(shù)據(jù)供第三方調(diào)用以及如何獲取第三方提供的XML數(shù)據(jù)。
    2015-05-05
  • PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)代碼

    PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)代碼

    這篇文章主要介紹了PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)全部代碼實(shí)例講解,代碼講解的很清楚,對(duì)這方面不懂的初學(xué)者可以照著練習(xí)研究下
    2021-01-01
  • 阿里云PHP SMS短信服務(wù)驗(yàn)證碼發(fā)送方法

    阿里云PHP SMS短信服務(wù)驗(yàn)證碼發(fā)送方法

    這篇文章主要介紹了阿里云PHP SMS短信服務(wù)驗(yàn)證碼發(fā)送方法,需要的朋友可以參考下
    2017-07-07
  • 使用Thinkphp框架開(kāi)發(fā)移動(dòng)端接口

    使用Thinkphp框架開(kāi)發(fā)移動(dòng)端接口

    本文給大家分享的是使用thinkphp框架開(kāi)發(fā)移動(dòng)端接口的2種方法,一種是開(kāi)發(fā)API,另外一種是實(shí)現(xiàn)移動(dòng)端訪(fǎng)問(wèn)自動(dòng)切換移動(dòng)主題模板,從而實(shí)現(xiàn)偽app訪(fǎng)問(wèn),下面我們就來(lái)詳細(xì)看下如何實(shí)現(xiàn)吧。
    2015-08-08

最新評(píng)論