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 :

Analyseur HTML pour retrouver toutes les couleurs d'un code


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Par défaut Analyseur HTML pour retrouver toutes les couleurs d'un code
    Bonjour,
    Pour notre application, nous souhaitons analyser un code html pour retrouver le nombre de couleurs utilisées... Ce code html est par exemple de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p style="text-align: center;"><span style="color: #ff0000;"><span style="font-size: xx-large;">Votre mot <span style="color: #0000ff;">ic</span> i !</span></span></p>
    En fait ce code html est entré par l'internaute sur une interface en ligne type tinyMCE (éditeur de texte en ligne). On récupère donc ce code et on veut l'analyser pour retrouver le nombre de couleurs utilisées par l'internaute.
    Connaissez-vous des parseurs PHP qui effectuent ce genre d'opération ?
    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 352
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 352
    Billets dans le blog
    17
    Par défaut
    DOM permet de parser du HTML : http://www.php.net/manual/fr/domdocument.loadhtml.php
    Sinon une simple regexp type /#[0-9A-F]{6}/i pourrait suffire http://fr.php.net/preg-match-all

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Par défaut
    SAlut Seb,
    Merci pour ta réponse rapide.
    En ce qui concerne ta deuxieme proposition en fait c'est pas si simple. Regarde le code html ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <p style="text-align: center;"><span style="color: #ff0000;"><span style="font-size: xx-large;">Votre phrase d'accroche ici !</span></span></p>
    <p style="text-align: center;">bnbvnvbnvnvbnvbn</p>
    Si on cherche les #color on va en trouver 1 (la couleur #ff0000), alors q'en fait le code html affiché comporte deux couleurs : la couleur #ff0000 et du noir !
    C'est le texte inclut dans les balises <p> qui pose problème... Vois-tu une solution... je galère depuis hier...
    Merci !

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 352
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 352
    Billets dans le blog
    17
    Par défaut
    Si tu sais que le texte est noir par défaut alors quel est le pb ?
    Quelle est la finalité de l'opération ?

    alors q'en fait le code html affiché comporte deux couleurs : la couleur #ff0000 et du noir !
    Attention, PHP ne pourra pas t'aider à connaître la couleur d'affichage effective d'un texte. Peut-être en Javascript...

  5. #5
    Membre expérimenté Avatar de Korri
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Par défaut
    Bonsoir,

    Tu a plusieurs solutions, soit tu met le noir par défaut ou tu le supprime complètement, sinon il te faudra utiliser DOM ou autre parseur pour vérifier balise après balise de quel couleur est affiché le texte.

    Par contre le regex donné ci-dessus te sortiras toutes les couleurs, backgrounds compris, Donc si possible tu devrais écouter Zipette et utiliser du javascript, sinon bon courage (il te faudrait aussi charger les fichiers css externes etc, autant dire un travail de Titan).

    bon courrage et bonne nuit !

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Par défaut
    Je me suis lancé dans les DOM et j'arrive presque au résultat voulu sauf encore un pb que je n'arrive pas à résoudre:
    J'ai une balise . Je souhaite tester la valeur de cette balise...
    Quand je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($domElementP -> nodeValue;<>"&nbsp;")
    sur cette balise cela me revoit "True"... Je ne comprends pas... j'ai essayé de mette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($domElementP -> nodeValue;<>" ")
    mais sans plus de resultat.
    Une idée ?

Discussions similaires

  1. supprimer toutes les balises d'un code html (regex?)
    Par le y@m's dans le forum Langage
    Réponses: 5
    Dernier message: 21/01/2014, 10h08
  2. Réponses: 4
    Dernier message: 07/07/2006, 12h41
  3. Formatter du html en supportant tout les codages
    Par shinux2004 dans le forum Web
    Réponses: 2
    Dernier message: 26/07/2005, 17h27
  4. Réponses: 2
    Dernier message: 17/06/2005, 23h03
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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