Maison > Questions et réponses > le corps du texte
Je souhaite renvoyer du JSON à partir d'un script PHP.
Est-ce que je fais simplement écho aux résultats ? Dois-je définir l'en-tête Content-Type
?
P粉5390555262023-10-10 09:38:23
Le code PHP complet et clair qui renvoie JSON est :
$option = $_GET['option']; if ( $option == 1 ) { $data = [ 'a', 'b', 'c' ]; // will encode to JSON array: ["a","b","c"] // accessed as example in JavaScript like: result[1] (returns "b") } else { $data = [ 'name' => 'God', 'age' => -1 ]; // will encode to JSON object: {"name":"God","age":-1} // accessed as example in JavaScript like: result.name or result['name'] (returns "God") } header('Content-type: application/json'); echo json_encode( $data );
P粉3115638232023-10-10 00:45:19
Bien que tout se passe généralement bien sans cela, vous pouvez et devez définir l'en-tête Content-Type
:
<?php $data = /** whatever you're serializing **/; header('Content-Type: application/json; charset=utf-8'); echo json_encode($data);
Si je n'utilise pas de framework spécifique, j'autorise généralement certains paramètres de requête à modifier le comportement de sortie. Souvent, pour un dépannage rapide, il peut être utile de ne pas envoyer l'en-tête, ou parfois print_r
le chargement des données pour l'observer (bien que dans la plupart des cas cela ne soit pas nécessaire).