Le traitement JSON est une tâche qui doit souvent être traitée dans le développement WordPress. Pour cette raison, WordPress définit un ensemble de fonctions de traitement JSON. Ce qui suit est effectué par le Tutoriel WordPress colonne. Donnons une introduction unifiée.
wp_json_encode
Encodez en JSON et effectuez quelques vérifications d'intégrité.
wp_json_encode( $data, $options = 0, $depth = 512 )
Copier après la connexion
Parlons brièvement de la raison pour laquelle WordPress a introduit cette fonction :
Tout d'abord, différentes versions PHP de la fonction json_encode prennent en charge différents paramètres. PHP 5.3 ne prenait auparavant en charge qu'un seul paramètre, $data, PHP 5.3 introduisait le paramètre $options et PHP 5.5 introduisait le paramètre $deep. Par conséquent, WordPress s'adapte aux différentes versions de PHP, et wp_json_encode prend en charge trois paramètres et est compatible avec différentes versions de PHP.
Avant json_encode, wp_json_encode utilise la fonction _wp_json_prepare_data pour nettoyer les données. Si booléen, entier, double, chaîne, NULL sont de ces types, il sera renvoyé directement. S'il s'agit d'un tableau, continuez à utiliser _wp_json_prepare_data. fonction pour nettoyer chaque élément du tableau. S'il s'agit d'un objet, si la classe de l'objet implémente l'interface JsonSerializing, alors $data = $data->jsonSerialize() est renvoyé. utilisez _wp_json_prepare_data pour nettoyer chaque attribut de l'objet.
Utilisez ensuite json_encode pour l'encodage. En cas d'échec, utilisez _wp_json_sanity_check pour effectuer un traitement d'intégrité sur les données, et enfin utilisez json_encode pour l'encodage. _wp_json_sanity_check utilise principalement la fonction _wp_json_convert_string pour effectuer une détection UTF-8 approfondie et une conversion des données.
Il est donc recommandé d'utiliser wp_json_encode pour encoder les variables JSON, ce qui est plus fiable.
wpjam_json_encode
wp_json_encode( $data, $options = JSON_UNESCAPED_UNICODE, $depth = 512 )
Copier après la connexion
PHP5.4 JSON a une nouvelle option : JSON_UNESCAPED_UNICODE, d'où le nom : Ne pas encoder en Unicode pour rendre le chinois plus lisible.
Nous avons donc écrit une fonction wpjam_json_encode. Par rapport à wp_json_encode, la valeur par défaut du paramètre $options est définie sur JSON_UNESCAPED_UNICODE De cette façon, si wpjam_json_encode($data) est utilisé directement, le chinois ne sera pas encodé. Unicode et est plus lisible.
Tant que vous installez le plugin WPJAM Basic, votre WordPress aura cette fonction.
wp_send_json
Envoyer directement les données JSON.
wp_send_json( $response, $status_code = null )
Copier après la connexion
Il affiche d'abord l'en-tête Content-Type de application/json Si $status_code n'est pas vide, il affiche ensuite le code d'état de $status_code.
Appelez ensuite wp_json_encode pour encoder les données.
wpjam_send_json
wpjam_send_json( $response, $status_code = null )
Copier après la connexion
Aussi afin de rendre le chinois plus lisible après l'encodage JSON, nous avons également écrit la fonction wpjam_send_json, qui est presque la même que wp_send_json, il suffit d'appeler La fonction pour encoder les données est wpjam_json_encode.
De plus, si les données entrantes sont une instance de WP_Error, alors wpjam_send_json génère directement errcode et errmsg JSON. Si le code d'erreur n'est pas défini, wpjam_send_json ajoutera automatiquement errcode=>0
Installez le plug-in WPJAM Basic et votre WordPress aura cette fonction.
wp_send_json_success et wp_send_json_error
WordPress fournit également deux fonctions : wp_send_json_success et wp_send_json_error
wp_send_json_success( $data = null, $status_code = null )
wp_send_json_error( $data = null, $status_code = null )
Copier après la connexion
wp_send_json_suc : ce premier résultat donne le succès comme étant vrai, et puis les données $data sont placées dans les données et la sortie. wp_send_json_error déterminera si $data est une instance de WP_Error. Si tel est le cas, il affichera un tableau de code et de message. Notre implémentation de wpjam_send_json peut déjà gérer ces erreurs automatiquement.
wp_is_json_request
Déterminez si la requête actuelle est une requête JSON, ou renvoie un résultat JSON. Cette fonction n'a pas de paramètres, utilisez-la directement :
wp_is_json_request()
Il détermine que $_SERVER['HTTP_ACCEPT'] contient application/json, ou $_SERVER['CONTENT_TYPE'] est égal à application/ json.
wp_is_jsonp_request
Déterminez si la requête actuelle est une requête JSONP, ou renvoie un résultat JSONP. Cette fonction n'a pas de paramètres, utilisez-la directement :
wp_is_jsonp_request()
Il détermine d'abord si $_GET['_jsonp'] existe, puis détermine si sa valeur est légale via la fonction wp_check_jsonp_callback.
wp_check_jsonp_callback
Déterminez si le rappel JSONP est une fonction de rappel JavaScript légale :
wp_check_jsonp_callback( $callback )
La fonction de rappel JavaScript légale ne peut accepter que les chiffres plus les caractères et les points anglais.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!