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 :

[SQL] Afficher du HTML extrait d'une BD


Sujet :

PHP & Base de données

  1. #1
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut [SQL] Afficher du HTML extrait d'une BD
    Bonjour,

    Dans ma BD, j'ai un champ texte (de type longtext) qui me permet de stocker un bloc.
    Ce bloc peut contenir du texte (avec mise en forme) ou bien des images, d'où la présence de balises HTML : img, p, ...
    Lorsque je fais ma requete et que j'affiche ce bloc, pas de problème.
    Mais ce que je voudrais c'est transformer les accents de mon bloc en appliquant la fonction htmlentities()
    [ è -> è | é -> é ...]
    Le hic, c'est que ça va également "transformer" mes balises <img ...> en &lt;img ... &gt;

    Auriez-vous une solution ?
    Je précise que je ne sais pas par avance le nombre de balises HTML du bloc.

    Merci.

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Essayer de faire joujou avec la fonction str_replace ?

    ca va être long, puisqu'il va faloir le faire pour chaque caractère spécial, mais je vois que ca ...

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Ben... c'est simple ;o)

    tu commence par transformer tout les caracteres que tu ne veux pas transformer en une chaine spéciale (par exemple remplacer < par ¤¤lt¤¤ puis > par ¤¤gt¤¤) puis tu appelle htmlentities, puis a nouveau le remplacement contraire du 1er pour retrouver les balises.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Autre solution non testée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $convertTable = get_html_translation_table(HTML_ENTITIES);
    unset($convertTable['>']);
    unset($convertTable['<']);
    $texte = strtr($texte, $convertTable);
    ?>

  5. #5
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    J'ai bien pensé au str_replace() ou bien à inserer directement les codes &eacute, &agrave, directement dans le champ SQL.
    Mais c'était lourd...

    Merci Fladnag, ça à l'air de fonctionner ainsi.
    Je vais faire d'autres tests encore.

    Par contre je ne connaissais pas la fonction get_html_translation_table()

  6. #6
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Après divers tests, cela fonctionne parfaitement !

    J'ai aussi supprimé le guillemet (pour les classes, id, ...).

    Merci

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    N'est-ce pas précisément l'utilité de html_special_chars() ?

  8. #8
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    bravo pour la solution de flanag

    perso j'aurais fais une expression reguliere pour extraire les balise s du texte ensuite j'aurais boucler sur le retour de mon expression

    pour chaque valeur qui ne commence pas par < j'applique html_entities

  9. #9
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    htmlspecialchars() fait la même que chose que htmlentities() non ?

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par Linaa
    htmlspecialchars() fait la même que chose que htmlentities() non ?
    htmlspecialchars est moins complet que htmlentities puisque qu'il ne remplace que &'"<> alors que htmlentities remplace aussi tout les autres caracteres qui ont des equivalents html (à en &agrave; par exemple)

    La doc le dit tres bien :

    http://fr.php.net/fr/htmlspecialchars
    http://fr2.php.net/fr/htmlentities

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

Discussions similaires

  1. Intégrer une table HTML extraite d'une page Web dans un tableau Excel
    Par Noizette dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/12/2014, 13h23
  2. afficher du html dans une appli java
    Par pigpen dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 26/10/2009, 15h11
  3. Réponses: 0
    Dernier message: 24/08/2007, 13h27
  4. Réponses: 8
    Dernier message: 08/02/2006, 16h16
  5. Réponses: 1
    Dernier message: 25/10/2005, 13h18

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