<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cet article et PHP En rapport,Utilisé pour démontrer comment l'utiliser json_last_error_msg Optimiser la transmission de données</span></span><span>
</span><span><span class="hljs-comment">// -------------------------------</span></span><span>
</span><span><span class="hljs-comment"># Comment utiliser json_last_error_msg Fonctions pour optimiser le format de transmission des données entre frontal et back-end?</span></span><span>
Dans les temps modernes Web En cours de développement,L'interaction des données entre les fins avant et arrière est presque inséparable JSON Format。Passe avant JavaScript Encapsuler les données dans JSON Objet,Passer au backend;Utilisez le backend PHP droite JSON Analyse et traitement des cordes。Cependant,donnéesexister传输和解析过程milieu很容易出现Format错误,Par exemple, encodant des problèmes、Quotes manquantes ou irrégularité de la syntaxe。Si ces erreurs ne sont pas capturées à temps,Cela peut entraîner un fonctionnement anormal du programme ou même une perte de données。为了更好地优化前后端之间的données传输Format,`</span><span><span class="hljs-title function_ invoke__">json_last_error_msg</span></span><span>()` Les fonctions sont devenues un outil très pratique。
</span><span><span class="hljs-comment">## un、Qu'est-ce que `json_last_error_msg()`</span></span><span>
exister PHP milieu,Quand nous utilisons `</span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>()` ou `</span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>()` Heure de fonction,Des erreurs peuvent être rencontrées。PHP Fourni `</span><span><span class="hljs-title function_ invoke__">json_last_error</span></span><span>()` Renvoyer le code d'erreur,Mais ces codes d'erreur sont des nombres,Pas intuitif。et `</span><span><span class="hljs-title function_ invoke__">json_last_error_msg</span></span><span>()` 则会返回droite应的错误信息Chaîne,Plus facile pour les développeurs de comprendre et de déboguer。
Exemple:
```php
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-string">"{invalidJson: true}"</span></span><span>; </span><span><span class="hljs-comment">// illégal JSON Chaîne</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">json_last_error</span></span><span>() !== JSON_ERROR_NONE) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"L'analyse a échoué:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">json_last_error_msg</span></span><span>();
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>La sortie peut être:
<span><span>L'analyse a échoué:Syntax </span><span><span class="hljs-type">error</span></span><span>
</span></span>De cette façon, les développeurs peuvent rapidement localiser le problème au lieu de s'appuyer uniquement sur les codes d'erreur.
Assurer l'intégrité des données : pendant le processus de transmission, si la structure des données est endommagée, elle peut être découverte dans le temps et invitée à le frontal pour les corriger.
Améliorer l'expérience utilisateur : le message d'erreur est clair et clair, ce qui facilite le frontal pour localiser rapidement les problèmes et réduire les coûts de communication.
Robustesse du système amélioré : grâce au mécanisme de détection des erreurs, les interruptions de logique métier causées par des erreurs d'analyse peuvent être évitées.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 假设Passe avant AJAX envoyer JSON données</span></span><span>
</span><span><span class="hljs-variable">$jsonInput</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">"php://input"</span></span><span>);
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$jsonInput</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">json_last_error</span></span><span>() !== JSON_ERROR_NONE) {
</span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">400</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>([
</span><span><span class="hljs-string">"status"</span></span><span> => </span><span><span class="hljs-string">"error"</span></span><span>,
</span><span><span class="hljs-string">"message"</span></span><span> => </span><span><span class="hljs-string">"Invalide JSON Format: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">json_last_error_msg</span></span><span>()
]);
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-comment">// 如果donnéesFormat正确,Continuer la logique commerciale</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>([
</span><span><span class="hljs-string">"status"</span></span><span> => </span><span><span class="hljs-string">"success"</span></span><span>,
</span><span><span class="hljs-string">"data"</span></span><span> => </span><span><span class="hljs-variable">$data</span></span><span>
]);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>De cette façon, le backend peut découvrir des problèmes d'analyse JSON dès que possible et retourner des invites d'erreur amicale.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$response</span></span><span> = [
</span><span><span class="hljs-string">"status"</span></span><span> => </span><span><span class="hljs-string">"success"</span></span><span>,
</span><span><span class="hljs-string">"message"</span></span><span> => </span><span><span class="hljs-string">"Opération terminée"</span></span><span>,
</span><span><span class="hljs-string">"data"</span></span><span> => [</span><span><span class="hljs-string">"id"</span></span><span> => </span><span><span class="hljs-number">123</span></span><span>, </span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"Tester l'utilisateur"</span></span><span>]
];
</span><span><span class="hljs-variable">$jsonOutput</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>(</span><span><span class="hljs-variable">$response</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">json_last_error</span></span><span>() !== JSON_ERROR_NONE) {
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"JSON Échec du codage:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">json_last_error_msg</span></span><span>());
</span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">500</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"服务器donnéesFormat错误"</span></span><span>;
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$jsonOutput</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Cela garantit que les données JSON renvoyées par le backend sur le frontend sont toujours légitimes et analyses.
Dans la transmission des données frontales, JSON est le format central. Mais les erreurs sont inévitables pendant le processus de traitement. JSON_LAST_ERROR_MSG () fournit aux développeurs un moyen intuitif d'attraper et de décrire les erreurs, ce qui aide non seulement à localiser rapidement les problèmes, mais améliore également considérablement la robustesse et l'expérience utilisateur du système. En appliquant raisonnablement cette fonction aux liens de réception de données et de sortie, le format de transmission de données entre les extrémités avant et arrière peut être efficacement optimisée, ce qui rend le fonctionnement du système plus stable et fiable.
<span></span>