IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Mettre chaine HTML dans JSON


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Août 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2003
    Messages : 111
    Points : 63
    Points
    63
    Par défaut Mettre chaine HTML dans JSON
    Bonjour à tous,

    Dans le cadre de la mise en place de l'API entre mon site et sendinblue pour l'envoi de mail automatique je galère sur un point.

    L'API demande de mettre une chaine de caractère qui contient le HTML du mail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $Fichier = fopen('Email_Sent/test.html', 'r'); //test.html a été généré avant et contient le mail a envoyer
    $html = fgets($Fichier);
     
    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://api.xxxxxxxxxx.com/v3/smtp/email",
      CURLOPT_HTTPHEADER => array("content-type:application/json","api-key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"),
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => "{\"tags\":[\"tags\"],
    							\"htmlContent\":\"$html\",
    							\"sender\":{\"email\":\"contact@xxxxxxxx.com\",\"name\":\"Envoyeur\"},
    							\"subject\":\"sujet de test\",
    							\"to\":[{\"email\":\"yyyyyy@xxxxxxxxx.com\"}],
    							\"replyTo\":{\"email\":\"contact@xxxxxxxxx.com\"}}",
    ));
    Le problème c'est que je bloque sur les transformations qu'il faut apporter à $html avant de le glisser dans le json. Ca me retourne sytématiquement "invalide json".

    Donc la question précise est quelle sont les transformations à apporter a une chaine contenant du HTML pour qu'elle soit valide dans le JSON?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pour générer du JSON valide, le plus pratique est de stocker les données dans un tableau PHP et ensuite vous le transformez en JSON avec cette fonction :
    https://secure.php.net/manual/fr/fun...son-encode.php

Discussions similaires

  1. Mettre du HTML dans un mail
    Par Shennong dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/06/2014, 22h45
  2. Mettre un html dans un jar exécutable
    Par biljava dans le forum Général Java
    Réponses: 7
    Dernier message: 26/08/2011, 14h18
  3. Comment mettre du HTML dans VB 2008 ?
    Par ibrahim100 dans le forum Windows
    Réponses: 1
    Dernier message: 12/12/2010, 23h36
  4. mettre code html dans echo =
    Par Gunner4902 dans le forum Langage
    Réponses: 6
    Dernier message: 02/07/2008, 23h47
  5. Comment mettre du HTML dans des alert javascript?
    Par funwolf74 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/04/2006, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo