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 :

formatage HTML


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut formatage HTML
    Bonjour,

    J'ai intégré TinyMCE (en mode textareas) dans le back office que je suis en train de développer de
    façon à ce que l'utilisateur puisse formater son texte qui est ensuite stocké dans une base de donnée MySQL.
    Le texte est retourné par TinyMCE et rentré dans la bdd sous cette forme:
    <p>C'est<em> l 'été</em> il <strong>fait chaud</strong> à la plage.</p>
    Jusque là ça va.
    note: J'utilise évidemment mysql_real_escape_string avant de rentrer le texte dans la bdd.

    Mais le pb c'est lorsque je récupère le texte de la bdd pour l'afficher sur le site.
    Comme je formate le texte avec htmlspecialchars ou htmlentities je me retrouve avec
    des trucs comme:
    &lt;p&gt;C'est&lt;em&gt; l'&eacute;t&eacute;&lt;/em&gt; etc...
    Ce qu'il faudrait c'est une fonction qui ne formate pas les chevrons appartenants
    à une balise mais je ne crois pas qu'une telle fonction existe.

    Quelle serait selon vous la solution à ce pb ?
    Est ce que je doit effectivement faire une fonction dédiée (bonjour les regexs ),
    ou est ce un pb de conception ?


    Merci d'avance.

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    Pourquoi utilises-tu htmlentities, puisqu'apparemment tu ne veux pas de ce codage ? Peut-être que tout ce que tu cherches, c'est un stripslashes pour tes données en provenance de la base de données.

    PS : sujet déplacé, c'est pas du niveau débutant...

  3. #3
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Peut-être que tout ce que tu cherches, c'est un stripslashes pour tes données en provenance de la base de données.
    Non ça c'est pas un pb puisque mysql s'en charge (lorsque les données sont entrées avec mysql_real_escape_string).
    Pourquoi utilises-tu htmlentities, puisqu'apparemment tu ne veux pas de ce codage ?
    Et bien c'est peut être ça le point crucial de mon pb.
    On m'a toujours dis qu'il fallait remplacer les accents, caractères spéciaux etc... par leur
    entités html.
    Alors est ce que je suis trop "old school" et que ce n'est plus vraiment nécessaire ?
    Mais dans le cas contraire comment résoudre mon pb ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    tu peux tout a fait faire ta conversion en entités html et faire un str_replace apres pour remettre les ">" et "<" corrects..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $text = str_replace("&lt;", "<", $text);
    $text = str_replace("&gt;", ">", $text);
    Mais il vaudrait mieux le faire avant l'insertion qu'au niveau de l'affichage.. (au niveau de l'insertion, tu ne fais le traitement qu'une seule fois, alors qu'a l'affichage c'est a chaque fois qu'il faut faire le traitement..)

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par tintin72 Voir le message
    Non ça c'est pas un pb puisque mysql s'en charge (lorsque les données sont entrées avec mysql_real_escape_string).

    Et bien c'est peut être ça le point crucial de mon pb.
    On m'a toujours dis qu'il fallait remplacer les accents, caractères spéciaux etc... par leur
    entités html.
    Alors est ce que je suis trop "old school" et que ce n'est plus vraiment nécessaire ?
    Mais dans le cas contraire comment résoudre mon pb ?
    Ca fait bien longtemps que je ne m'embête plus avec les accents. Il suffit d'encoder la page correctement. Bien sûr, les entités html sont encore nécessaires pour certains caractères spéciaux, genre &euro;, mais à part ça...

  6. #6
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    tu peux tout a fait faire ta conversion en entités html et faire un str_replace apres pour remettre les ">" et "<" corrects..
    Oui c'est une bonne idée mais je peux pas faire ça avant l'insertion car les données doivent
    être le plus "brute" possible, sans compter que l'encodage (&eacute; etc..) va prendre 2 fois plus de place dans la bdd.
    Il suffit d'encoder la page correctement.
    Tu veux parler du doctype j'imagine.
    Lequel utilises tu ?

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par tintin72 Voir le message
    Tu veux parler du doctype j'imagine.
    Lequel utilises tu ?
    Non, je veux plutôt parler de la directive charset :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    je ne vois pas trop l'interet de rentrer le texte le plus "brut" possible.. mais oui, sinon il te suffit d'avoir un encodage identique entre tes scripts php, l'encodage de tes pages html et ta base de données..

  9. #9
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    je ne vois pas trop l'interet de rentrer le texte le plus "brut" possible
    C'est une règle générale qui vaut pour tous les types de bdd (MySql, SQL etc...).
    C'est à l'utilisateur de formater les données, ce qui évite d'avoir à tout
    recorriger dans la bdd le jour où il veut changer de type de formatage.
    Cela permet aussi à plusieurs utilisateurs d'utiliser les mêmes données
    avec des formatage différents.
    Non, je veux plutôt parler de la directive charset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    Ah ok. Oui moi aussi j'utilise cette directive.
    Donc selon toi avec ce type de directive il n'est plus besoin d'utiliser
    htmlentities ou htmlspecialchars ?

  10. #10
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par tintin72 Voir le message
    Ah ok. Oui moi aussi j'utilise cette directive.
    Donc selon toi avec ce type de directive il n'est plus besoin d'utiliser
    htmlentities ou htmlspecialchars ?
    Pour ce qui est accents et plus généralement en rapport avec la locale, oui.

  11. #11
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Bon ben je vais laisser tomber htmlentities et htmlspecialchars alors,
    ce qui finalement arrange bien mes affaires.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/11/2008, 14h33
  2. [mailto]Formatage d'un mail en HTML
    Par goonsort dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/11/2005, 16h40
  3. [HTML] Tableau problème de formatage avec internet Explorer
    Par rabobsky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/11/2005, 09h50
  4. [XSLT]Formatage de mon html non désiré
    Par Thanos76 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 25/06/2005, 12h16
  5. XSLT -> HTML : formatage : indentation et retour a la lig
    Par jiib75 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/05/2004, 11h11

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