(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.
jsonLa 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)