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

Bibliothèques et frameworks PHP Discussion :

[FPDF] Conversion HTML


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut [FPDF] Conversion HTML
    Les choses avancent timidement... Je viens de terminer un tableau avec différentes infos provenant d'une base Mysql en utilisant phptopdf.

    Il me reste à loger dans une cellule ces genres de contenu html enregistrés tel quel dans ma base de données

    Existe-t-il des bouts de scripts php pour transformer à la volée et au mieux ce html en chaine intégrable dans phptopdf ?

    ou suis-je un doux rêveur ?

    (élimination des balises de style, transformer les <BR> en "\n" etc ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <p class="Style1">Communication</p>
    <blockquote>
      <p><u>I) Les éléments disponibles pour l&rsquo;étude de l&rsquo;organisation :</u> utilisation document type réalisé lors du TP3.</p>
      <p><u>II) L&rsquo;organigramme</u></p>
      <p><u>III) Le rapport d&rsquo;activité</u></p>
      <p><u>IV) Les supports de communication externe</u></p>
    </blockquote>
    Merci à tous

  2. #2
    Membre éprouvé Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Par défaut
    (élimination des balises de style, transformer les <BR> en "\n" etc ....
    Les regex avec la fonction preg_replace() vont t'aider, voir de simple str_replace()

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut
    Merci...
    mais n'y aurait-il pas une fonction déjà écrite par quelqu'un ?
    Je ne voudais pas réinventer l'eau chaude )

  4. #4
    Membre éprouvé Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Par défaut
    Il y a aussi la fonction strip_tags() qui enlèvera tous les tags html, donc tu devrais avoir de quoi faire.

    Edit: A ta place, par exemple je convertirais tout les <br> en \n grace à str_replace, puis je passerais cette var à strip_tags qui va finir le boulot, en te gardant les sauts de lignes.

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par TiEuAM Voir le message
    A ta place, par exemple je convertirais tout les <br> en \n grace à str_replace
    Comme tu l'as précisé dans ton message précédent, il vaut mieux utiliser une expression régulière.
    Il faut aussi penser à supprimer les sauts de lignes réels présents dans le code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function br2nl($str) {
        $str = preg_replace("/(\r\n|\n|\r)/", "", $str);
        return preg_replace("=<br */?>=i", "\n", $str);
    }

  6. #6
    Membre éprouvé Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Par défaut
    arf... j'aime "hélas" tjrs gratter le moindre millième de seconde que je puisse avoir à prendre. (ces millièmes peuvent si vite devenir des dixièmes de secondes selon l'info traité, et bientot des secondes...)

    Sub0 a la solution qui permet d'arrivé aux buts avec le moins de lignes de code possible, mais pas avec le meilleur temps d'exécution.

    Utiliser les expressions relationnel (PCRE) si elles n'ont pas un réel besoin de l'etre prendra en général tjrs plus de tps, et ce tps d'exécution est assez exponentiel selon la taille de la chaine à traiter. (l'ordre pour une chaine relativement petite est d'environ 70% en plus comparer à un str_replace).

    PS: Je dit pas ça du tout méchamment Sub0, bien au contraire, j'imagine bien que tu dois etre un sacré adepte de php, et justement, ce post pourrais peu etre bien te servir, fait donc le test de faire un bench sur la comparaison preg_replace VS str_replace (dans un cas comme ici), et tu verra que meme si tu enchaines les str_replace pour comparer la case, espace (voir place les chaine à traité pareillement dans un array), bin tu obtiendra de meilleurs résultats en mode str_replace ! En voici un sacré débat, lool

    Ceci étant dit, pierre50, fait tout de meme la méthode de Sub0 qui est plus abordable et plus manipulable. La mienne se prononcera vraiment que si tu traites bcp de chose avec ton server, ou si les chaines à analyser par POSIX sont d'une taille conséquente, ou serait très nombreuses.

    Au final, je pense de tout maniere, que tout ceci ne va pas correspondre aux attentes de pierre50, car tous les br ne sont pas forcément présents là ou il faudrait qu'ils y soient pr faire un saut de ligne pour sont fameux pdf, donc il va falloir jouer avec les regex sur chaques balises html pour par exemple supprimer une serie de '<li>chaine</li>' et la convertir en 'chaine'."\r\n"
    (et donc pour cette façon il n'y a pas d autre choix que les regex, donc la, oui de ma part pour les regex)

Discussions similaires

  1. [FPDF] Convertion HTML vers PDF
    Par sami_c dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 21/09/2007, 16h43
  2. Conversion html --> word/excel
    Par liichiii dans le forum Excel
    Réponses: 3
    Dernier message: 15/05/2006, 16h31
  3. conversion HTML -> XML
    Par theoeme dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 10/03/2006, 13h04
  4. Conversion HTML
    Par jlppap dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 08/09/2005, 19h21
  5. [chaînes de caractères] Conversion HTML ?
    Par rozwel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/11/2004, 15h21

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