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

Langage PHP Discussion :

générateur de echo


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut générateur de echo
    Bonjour,

    j'ai un mail à envoyer au format html et je dois encapsuler chaque ligne avec des echos du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $envoi_mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>';
    	$envoi_mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>';
    Mais je trouve ça un laborieux de coder toutes une page HTML avec des echo.

    Et c'est pour cela que je me demande s'il n'existe pas un logiciel qui permettra de faire ça ?

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Certains editeurs de texte proposent un mode "en colonnes" te permettant d'ecrire sur plusieurs lignes à la fois. Ainsi que tu es 1 ligne ou 1000, le temps de création est le même et correspond juste à l'écriture de $envoi_mail->Body

  3. #3
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Au lieu de faire des echo pour chaque ligne, tu pourrais en faire qu'un seul.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $envoi_mail->Body= '<html>
    <title>UN MAIL</title>
    <style type="text/css">
    .ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}
    </style>
    </head>
    ... etc ...
    ';
    Ou alors, tu peux faire un mini système de template en exploitant un include()
    Exemple :
    template_mail.php
    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
     
    $envoi_mail_body= '<html>
    <title>'.$titre_page.'</title>
    <style type="text/css">
    .ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}
    </style>
    </head>
    <body>
    <div class="corps">
    <h1>'.$sujet.'</h1>
    <p>'.$contenu.'</p>
    ... etc ...
    </div>
    </body>
    </html>';
    page d'envoie de mail (mail.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $titre_page = 'UN MAIL';
    $sujet = $_POST['sujet'];
    $contenu = $_POST['contenu'];
    //
    include('template_mail.php');
    //
    $envoi_mail->Body = $envoi_mail_body;
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Bonjour RunCodePhp,

    merci ta technique me plaît bien.

    Par contre, il y a juste une chose qui me gène c'est les simples quottes et les doubles quottes avec les caractères d'échappement... Je ne sais jamais trop quoi mettre... Quand c'est un ligne ou 2 maximum, j'arrive à m''en sortir mais toute une page

    C'est pour ça que je cherchce un générateur qui tient compte de tout ça.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Si tu veux éviter de te prendre la tête avec les guillemets/apostrophes et l'échappement de ceux ci, tu peux utiliser les délimiteurs Heredoc, qui sont bien pratiques pour cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $chaine = <<<MACHAINE
    syntaxe dans laquelle les "guillemets" et 'apostrophes' n'ont aucune signification, et n'ont pas besoin d'être échappés.
    On peut aussi y coller des $variables voir même des {$tableau['index']} de la même manière qu'une chaîne encadrée par des guillemets.
    MACHAINE;
    Plus d'informations ici :
    http://fr2.php.net/manual/fr/languag...syntax.heredoc
    Pourfendeur de singletons en croisade

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Le problème des caractères spéciaux (comme ' ou/et " ... etc ...) est le même que pour une pages HTML classique, il faut encoder : htmlspecialchars() ou htmlentities().
    Voir la doc :
    http://fr2.php.net/manual/fr/functio...ecialchars.php
    http://fr2.php.net/manual/fr/function.htmlentities.php

    string htmlspecialchars ( string $string [, int $quote_style = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )
    Donc en 2 arguments on peu spécifier le type de conversion selon les 3 choix possibles :
    ENT_COMPAT : Convertit les guillemets doubles, et ignore les guillemets simples.
    ENT_QUOTES : Convertit les guillemets doubles et les guillemets simples.
    ENT_NOQUOTES : Ignore les guillemets doubles et les guillemets simples.

    Par défaut il vaut ENT_COMPAT.

    En finalité, il suffit de l'appliquer sur le contenu ($titre_page, $sujet et $contenu dans mon exemple de mini template).

    Exemple :
    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
     
    $envoi_mail_body= '<html>
    <title>'.htmlspecialchars($titre_page, ENT_QUOTES).'</title>
    <style type="text/css">
    .ligne {
        color:#0000FF;border:solid 1px;text-align:center;font-size:23px;
    }
    </style>
    </head>
    <body>
    <div class="corps">
        <h1>'.htmlspecialchars($sujet, ENT_QUOTES).'</h1>
        <p>'.htmlspecialchars($contenu, ENT_QUOTES).'</p>
    </div>
    </body>
    </html>';
    Théoriquement ça ne devrait pas causer de problème.

    Ceci dit, ça dépend ce que contiendra $contenu.
    Si $contenu contient lui même du HTML (ce qui faudrait éviter) alors l'encodage sera nécessaire.
    Par contre, si leur contenu est purement textuel (pas de HTML) alors normalement il n'est même pas utile d'encoder quoi que ce soit.

    Fais des essais simples.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. Que pensez-vous des générateurs de doc PHP ?
    Par Nonothehobbit dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 64
    Dernier message: 10/07/2007, 10h17
  2. [HARDWARE]Problème d'écho audio
    Par Tostaki dans le forum Composants
    Réponses: 5
    Dernier message: 07/12/2003, 23h38
  3. Générateur de doc
    Par chman dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 09/09/2003, 20h37
  4. Envoyer un message icmp (Echo Request)
    Par ovdz dans le forum Développement
    Réponses: 5
    Dernier message: 19/06/2003, 14h14

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