(PHP 8 >= 8.3.0)
json_validate — Vérifie si une chaîne contient du JSON valide
Renvoie si la chaîne de caractères donnée est du JSON syntaxiquement valide.
Si json_validate() renvoie true
, json_decode()
décodera avec succès la chaîne donnée en utilisant les mêmes
depth
et flags
.
Si json_validate() renvoie false
, la cause
peut être récupérée en utilisant json_last_error() et
json_last_error_msg().
json_validate() utilise moins de mémoire que json_decode() si le contenu JSON décodé n'est pas utilisé, car il n'a pas besoin de construire la structure de tableau ou d'objet contenant le contenu.
Appeler json_validate() immédiatement avant json_decode() analysera inutilement la chaîne deux fois, car json_decode() effectue implicitement une validation lors du décodage.
json_validate() ne doit donc être utilisé que si le décodage du contenu JSON n'est pas immédiatement utilisé et que savoir si la chaîne contient du JSON valide est nécessaire.
json
La chaîne à valider.
Cette fonction ne fonctionne qu'avec des chaînes encodées en UTF-8.
Note:
PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.
depth
Le niveau de profondeur maximum de la structure à décoder.
La valeur doit être supérieure à 0
,
et inférieure ou égale à 2147483647
.
flags
Aujourd'hui, seul
JSON_INVALID_UTF8_IGNORE
est accepté.
Renvoie true
si la chaîne donnée est du JSON syntaxiquement valide, sinon
renvoie false
.
Si depth
est en dehors de la plage autorisée,
une ValueError est lancée.
Si flags
n'est pas un drapeau valide,
une ValueError est lancée.
Exemple #1 Exemples de json_validate()
<?php
var_dump(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>
L'exemple ci-dessus va afficher :
bool(true) bool(false)