php la fonction json_decode la suppression des balises html
Je suis à l'aide de php la fonction json_decode pour analyser les API de réponse et puis json_encode d'envoyer une réponse au client.
Dans une troisième partie les appels de l'API, je suis JSON réponse dans laquelle il y a une touche avec la valeur d'avoir des balises html et du contenu html. Quand j'ai l'impression que les données que je peux voir ces balises, mais après json_decode, je ne peux pas voir ces balises, de sorte que je suis incapable de garder ces balises sont intacts. Je veux que le contenu html aller à la base de données [sans changement à tous].
$result = curlGetWithHeaders("API URL", "Parameters for that URL");
$data = json_decode($result);
Donc dans $result
je peux voir les balises html, mais pas dans $data
.
Et var_dump($data)
dit que c'est string
.
Réponse est =
{"array":{"id":1,"title":"Title","short_title":"abcd","description":"<ul><li>0</li><li>A</li><li>B</li><li>C</li><li>D</li>"}}
et après l'utilisation de json_decode
je suis arriver description pasred html.
deals] => Array
(
[0] => stdClass Object
(
[deal] => stdClass Object
(
[id] => 1
[title] => title
[short_title] => abcd
[description] => 0
• A
• B
• C
- doublon de cette question. La réponse sélectionnée il n'y a pas stellaire mais, à mon humble avis.
- merci pour la réponse, cela signifie que je devrais utiliser
str_replace
pour remplacer<
avec<
et>
avec>
- Pouvez-vous montrer un exemple de ce qui se passe?
- Le titre le dit la question est à propos
json_encode
mais seulementjson_decode
est demandé au sujet. Qui est-il maintenant? - toutes mes excuses pour tous. code ajouté, sous réserve changé.
Vous devez vous connecter pour publier un commentaire.
Lorsque vous utilisez
print_r
pour afficher le contenu de votre JSON-décodé objet, ce que vous voyez dans votre navigateur est quelque chose comme ça:stdClass Object ( [array] => stdClass Object ( [id] => 1 [title] => Titre [short_title] => abcd [description] =>
Toutefois, le contenu effectif de votre objet (sans le navigateur d'interpréter les balises HTML) est-ce:
Vous pouvez le voir clairement si vous demandez à votre navigateur d'afficher le code source de la page.
Votre
description
champ contient une chaîne simple qui se trouve être le HTML, c'est tout.Si vous souhaitez stocker le JSON-décodés de données dans votre base de données sans aucune modification, eh bien, ne pas faire n'importe quoi et vous obtiendrez exactement ce que vous voulez.
Maintenant, si vous souhaitez afficher le code HTML dans votre navigateur, vous aurez à s'échapper de l'HTML pour les caractères spéciaux, comme:
Notez que vous devez obtenir le
print_r
résultat d'abord, et ensuite seulement de s'échapper de l'HTML.$result
sans le navigateur analyse le code HTML?print_r
de données JSON pour afficher l' (cité) code HTML sans le navigateur de l'interpréter.network
demande de réponses pour l'instant, à l'aide de chrome.â�¢
. Exactement ce que je veux - je veux donner à cette chaîne avec des balises html à l'avant de la fin comme il est.Ne sais pas si ça aide mais...
Ici votre chaîne json déjà eu converti en tableau où "description" est d'avoir des balises html inclus. avec print_r vous bot en mesure de voir les balises html que il est interprété par le navigateur et vous verrez la suite que le html va générer.
Maintenant, si vous voulez la chaussure de texte avec du HTML, vous pouvez utiliser htmlentities comme indiqué ci-dessous.
De sortie:
var_dump()
.utiliser htmlspecialchars() pour encoder les données de la première
et l'utilisation htmlspecialchars_decode() fonction permettant d'obtenir le résultat
l'utiliser et quand souhaitez récupérer le contenu html
htmlspecialchars_decode() pour obtenir le contenu html dos
htmlspecialchars
incapable de décoder en json comme l'a remplacé, mêmedouble quotes
.Pas exactement la réponse à ma question, mais ça peut aider quelqu'un, ce que je était de stocker dans la DB était parfait. Le problème était tout en affichant. Alors maintenant, je pouvais le faire avec
<pre></pre>
balises qui permet de formater les données lors de l'affichage. Il a juste travaillé pour moi.