Rechercher une fonction PHP

json_last_error

(PHP 5 >= 5.3.0, PHP 7)

json_last_errorRetourne la dernière erreur JSON

Description

json_last_error ( void ) : int

json_last_error() retourne la dernière erreur, s'il y en a eu, survenue lors de la dernière opération d'encodage/décodage JSON.

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Retourne une des constantes suivantes :

Codes d'erreur JSON
Constante Signification Disponibilité
JSON_ERROR_NONE Aucune erreur n'est survenue  
JSON_ERROR_DEPTH La profondeur maximale de la pile a été atteinte  
JSON_ERROR_STATE_MISMATCH JSON invalide ou mal formé  
JSON_ERROR_CTRL_CHAR Erreur lors du contrôle des caractères ; probablement un encodage incorrect  
JSON_ERROR_SYNTAX Erreur de syntaxe  
JSON_ERROR_UTF8 Caractères UTF-8 malformés, possiblement mal encodés PHP 5.3.3
JSON_ERROR_RECURSION Une ou plusieurs références récursives sont présentes dans la valeur à encoder PHP 5.5.0
JSON_ERROR_INF_OR_NAN Une ou plusieurs valeurs NAN ou INF sont présentes dans la valeurs à encoder. PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE Une valeur d'un type qui ne peut être encodée a été fournie PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME Un nom de propriété qui ne peut pas être encodé a été donné PHP 7.0.0
JSON_ERROR_UTF16 Charactères UTF-16 mal formés, probablement mal encodé PHP 7.0.0

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Exemple avec json_last_error()

<?php
// Une chaîne JSON valide
$json[] = '{"Organisation": "Équipe de Documentation PHP"}';

// Une chaîne json invalide qui va générer une erreur de syntaxe,
// ici, utilisation de ' au lieu de "
$json[] = "{'Organisation': 'Équipe de Documentation PHP'}";

foreach (
$json as $string) {
    echo 
'Décodage : ' $string;
    
json_decode($string);

    switch (
json_last_error()) {
        case 
JSON_ERROR_NONE:
            echo 
' - Aucune erreur';
        break;
        case 
JSON_ERROR_DEPTH:
            echo 
' - Profondeur maximale atteinte';
        break;
        case 
JSON_ERROR_STATE_MISMATCH:
            echo 
' - Inadéquation des modes ou underflow';
        break;
        case 
JSON_ERROR_CTRL_CHAR:
            echo 
' - Erreur lors du contrôle des caractères';
        break;
        case 
JSON_ERROR_SYNTAX:
            echo 
' - Erreur de syntaxe ; JSON malformé';
        break;
        case 
JSON_ERROR_UTF8:
            echo 
' - Caractères UTF-8 malformés, probablement une erreur d\'encodage';
        break;
        default:
            echo 
' - Erreur inconnue';
        break;
    }

    echo 
PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Décodage : {"Organisation": "Équipe de Documentation PHP"} - Aucune erreur
Décodage : {'Organisation': 'Équipe de Documentation PHP'} - Erreur de syntaxe ; JSON malformé

Exemple #2 Exemple avec json_last_error() et json_encode()

<?php
// Une séquence UTF8 invalide
$text "\xB1\x31";

$json  json_encode($text);
$error json_last_error();

var_dump($json$error === JSON_ERROR_UTF8);
?>

L'exemple ci-dessus va afficher :

string(4) "null"
bool(true)

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

  • json_last_error_msg() - Retourne le message de la dernière erreur survenue lors de l'appel à la fonction json_encode() ou json_decode()
  • json_decode() - Décode une chaîne JSON
  • json_encode() - Retourne la représentation JSON d'une valeur

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.json-last-error.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut