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 :

supprimer balises html/css


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Par défaut supprimer balises html/css
    Bonjour
    Je récupère une variable contenant la structure d'une page web avec des styles css dans le header.
    Je souhaite conserver uniquement ce qui se trouve entre les balises <body>.
    J'ai fait plusieurs recherches et tentatives, suis pas champion en expression régulière et ne trouve pas la solution.

    pour l'instant je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       $stripIt=array("<html>","<head>","<style type='text/css'>","</style>","</head>","<body>","</body>","</html>");
      $body=str_replace($stripIt,"",$body);
    En gros je réussis à supprimer les balises mais pas leur contenu donc je retrouve en affichage mes définitions css...Est ce que quelquun à une piste

    Merci

  2. #2
    Membre Expert
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Par défaut
    Regarde du côté de l'outil Tidy, ou HTML Tidy

    Il te permettra peut être de nettoyer ton code

  3. #3
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    sinon tu ne supprime pas tout de suite les balises <body>. Puis tu supprime tout ce qui se trouve avant <body>, puis tu supprime les balises <body>
    Et si ton body a un attribut (onload par ex), tu fais comment ?

  4. #4
    Membre Expert
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Par défaut
    Tu peux aussi utiliser des expressions régulières pour supprimer les éléments dont tu n'as pas besoin ( ex : onload )

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Par défaut
    Je précise ma question :

    Ce que je veux c'est récupérer uniquement : "<p class='style1'>hello world!</p>" ou tout contenu contenu entre <body>et </body>
    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
    17
    18
    19
     
    <?php 
    $html="
    <html>
      <head>
      <title></title>
      <style type='text/css'>
      .style1 {
      	text-align: right;
      }
        </style>
      </head>
      <body>
      <p class='style1'>hello world!</p>
      </body>
    </html>";
    $body =strip_tags($html,'<p><a><br><div><span><em><strong><b><i><cite><code><ul><ol><li><dl><dt><dd><table><tr><td>');
    echo $body;
    ?>
    Ce qui donne en sortie :
    ".style1 { text-align: right; }
    hello world!"

    Je ne vois pas comment faire pour supprimer ce qui est contenu dans la balise <style> de la partie <head> ou pour isoler uniquement ce qui est dans <body>

    C'est probablement plus clair comme ça.

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    A quoi je répond :
    Citation Envoyé par Mr N.
    sinon tu ne supprime pas tout de suite les balises <body>. Puis tu supprime tout ce qui se trouve avant <body>, puis tu supprime les balises <body>
    Et si ton body a un attribut (onload par ex), tu fais comment ?
    En français dans le texte :
    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
    17
    18
    19
    20
    21
    22
    23
    <?php
    $html="
    <html>
      <head>
      <title></title>
      <style type='text/css'>
      .style1 {
         text-align: right;
      }
        </style>
      </head>
      <body>
      <p class='style1'>hello world!</p>
      <body
      </body>
    </html>";
    $allowed = '<p><a><br><div><span><em><strong><b><i><cite><code><ul><ol><li><dl><dt><dd><table><tr><td>';
    $body = strip_tags($html, '<body>'.$allowed);
    $body = substr($body, strpos($body, '<body'));
    $body = substr($body, strpos($body, '>')+1);
    $body = strip_tags($body, $allowed);
    echo htmlentities($body);
    ?>

    Sinon tu pourras faire peut-etre plus proprement en utilisant http://php.net/domxml

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Par défaut
    ok merci je comprends mieux maintenant la méthode.

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

Discussions similaires

  1. [RegEx] Supprimer les balises HTML
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2008, 16h51
  2. balise link css/html
    Par sadkill dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 25/01/2007, 11h11
  3. [MySQL] supprimer balises html
    Par nicerico dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/09/2006, 22h49
  4. [RegEx] Supprimer les balises HTML
    Par hisy dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2006, 17h10
  5. [HTML] [CSS] href et balise img.
    Par Devil666 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 15/06/2005, 17h03

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