PHP 5.4.45 Released

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes indiquent le type d'erreur retournée par la fonction json_last_error().

JSON_ERROR_NONE (entier)
Aucune erreur n'est survenue. Disponible depuis PHP 5.3.0.
JSON_ERROR_DEPTH (entier)
La profondeur maximale de la pile a été atteinte. Disponible depuis PHP 5.3.0.
JSON_ERROR_STATE_MISMATCH (entier)
Survient avec un underflow ou avec une inadéquation des modes. Disponible depuis PHP 5.3.0.
JSON_ERROR_CTRL_CHAR (entier)
Erreur lors du contrôle des caractères ; probablement un encodage incorrect. Disponible depuis PHP 5.3.0.
JSON_ERROR_SYNTAX (entier)
Erreur de syntaxe. Disponible depuis PHP 5.3.0.
JSON_ERROR_UTF8 (entier)
Caractères UTF-8 mal formés, probablement mal encodés. Cette constante est disponible depuis PHP 5.3.3.
JSON_ERROR_RECURSION (integer)

L'objet ou le tableau passé à la fonction json_encode() inclut les références récursives et ne peuvent être encodées. Si l'option JSON_PARTIAL_OUTPUT_ON_ERROR a été fournie, NULL sera encodé à la place de la référence récursive.

Cette constante est disponible depuis PHP 5.5.0.

JSON_ERROR_INF_OR_NAN (integer)

La valeur passée à la fonction json_encode() inclut soit NAN, soit INF. Si l'option JSON_PARTIAL_OUTPUT_ON_ERROR a été fournie, 0 sera encodé à la place de ces nombres spéciaux.

Cette constante est disponible depuis PHP 5.5.0.

JSON_ERROR_UNSUPPORTED_TYPE (integer)

Une valeur d'un type non supporté a été fournie à la fonction json_encode(), comme par exemple une resource. Si l'option JSON_PARTIAL_OUTPUT_ON_ERROR a été fournie, NULL sera encodé à la place de la valeur non supportée.

Cette constante est disponible depuis PHP 5.5.0.

Les constantes suivantes peuvent être combinées pour former des options de json_encode().

JSON_HEX_TAG (entier)
Tous les caractères < et > sont convertis en séquences \u003C et \u003E. Disponible depuis PHP 5.3.0.
JSON_HEX_AMP (entier)
Tous les caractères & sont convertis en \u0026. Disponible depuis PHP 5.3.0.
JSON_HEX_APOS (entier)
Tous les guillemets ' sont convertis en \u0027. Disponible depuis PHP 5.3.0.
JSON_HEX_QUOT (entier)
Tous les guillemets doubles " sont convertis en \u0022. Disponible depuis PHP 5.3.0.
JSON_FORCE_OBJECT (entier)
Produit un objet plutôt qu'un tableau, lorsqu'un tableau non-associatif est utilisé. C'est particulièrement utile lorsque le destinataire du résultat attend un objet, et que le tableau est vide. Disponible depuis PHP 5.3.0.
JSON_NUMERIC_CHECK (entier)
Encode les chaînes numériques en tant que nombres. Disponible depuis PHP 5.3.3.
JSON_BIGINT_AS_STRING (entier)
Encode les gros entiers sous forme d'une chaîne de caractères. Disponible depuis PHP 5.4.0.
JSON_PRETTY_PRINT (entier)
Utilise des espaces dans les données retournées pour les formater. Disponible depuis PHP 5.4.0.
JSON_UNESCAPED_SLASHES (entier)
Ne pas échapper les caractères /. Disponible depuis PHP 5.4.0.
JSON_UNESCAPED_UNICODE (entier)
Encode les caractères multi-octets Unicode littéralement (le comportement par défaut est de les échapper, i.e. \uXXXX). Disponible depuis PHP 5.4.0.
JSON_PRESERVE_ZERO_FRACTION (integer)
S'assure que les valeurs de type float sont toujours encodées comme valeur de type float. Disponible depuis PHP 5.6.6.
add a note add a note

User Contributed Notes 4 notes

up
29
Yzmir Ramirez
11 months ago
If you curious of the numeric values of the constants, as of JSON 1.2.1, the constants have the following values (not that you should use the numbers directly):

JSON_HEX_TAG => 1
JSON_HEX_AMP => 2
JSON_HEX_APOS => 4
JSON_HEX_QUOT => 8
JSON_FORCE_OBJECT => 16
JSON_NUMERIC_CHECK => 32
JSON_UNESCAPED_SLASHES => 64
JSON_PRETTY_PRINT => 128
JSON_UNESCAPED_UNICODE => 256

JSON_ERROR_DEPTH => 1
JSON_ERROR_STATE_MISMATCH => 2
JSON_ERROR_CTRL_CHAR => 3

JSON_ERROR_SYNTAX => 4

JSON_ERROR_UTF8 => 5
JSON_OBJECT_AS_ARRAY => 1

JSON_BIGINT_AS_STRING => 2
up
5
on5wis at mac dot com
4 months ago
since json_encode expects a UTF-8 string there is no need to encode the € symbol.

I suggest you try to echo : json_encode('€');
It gives: "\u20ac"
I'm running PHP 5.6.5 on the CLI, on MacOS X 10.10
up
-6
Anonymous
2 months ago
I am working with "Marathi Language Data" and I found that when I encoded Marathi data to json using json_encode it returned me unicode values of each character like below:

Program :

<?php
$ar
= array("word" => "धाडस");
echo
json_encode($ar);
?>

Output of program is :

{"word":"\u0927\u093e\u0921\u0938"}

This is not expected output because what I need is output as

{"word":"धाडस"}

So I used following code:

<?php
$ar
= array("word" => "धाडस");
echo
json_encode($ar, JSON_UNESCAPED_UNICODE);
?>

And I got the required output as :

{"word":"धाडस"}
up
-16
jgarviahonrado at yahoo dot es
4 months ago
When decoding the euro symbol (€) as below:

json_encode(utf8_encode('€')

json_encode provides the UTF-8 code \u0080, but it would be really interesting to get the \u20AC one.

Maybe a new option could be added to get the current code or the \u20AC one.
To Top