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 :

php, dom et remove


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 94
    Points : 47
    Points
    47
    Par défaut php, dom et remove
    Bonjour,
    Je suis en train de reprendre un site existant, sans pouvoir trop modifier la base de données. Dans une table, il y a des enregistrements écrits en html, avec du texte, des div pour la mise en page et une table en html, ci-dessous variable $tx. Je voudrais simplifier tout cela en récupérant les différents éléments.
    Le bout de code suivant récupère les entêtes de la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            $dom = new DOMDocument;
            $dom->loadHTML($tx);
            $tr=$dom->getElementsByTagName('tr');
            foreach ($tr as $key1=>$ligne) {
                $th=$ligne->getElementsByTagName('th');
                foreach ($th as $key2=>$entete) {
                    $cell[$key1][$key2]= utf8_decode($entete->nodeValue);
                    echo $cell[$key1][$key2].' ';
                }
             }
    Il suffit de faire de même pour les <td> et c'est bon.
    Il me faut cette fois récupérer le texte sans la table, c'est à dire supprimer le noeud table de $tx, et là, je sèche. Il y a bien la solution explode('<table'>,..), mais ce n'est pas possible car les balises table peuvent comporter des attributs de style. Un petit coup de main serait le bienvenu.

  2. #2
    Membre régulier Avatar de Chris_Dupasquier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Points : 85
    Points
    85
    Par défaut
    Hello,

    Pourrait on imaginer un truc de ce style ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $texte = '<table = "">ici du texte</table>';
    $marqueurDebutBalise = '<table="';
    $debutBalise = strpos( $texte, $marqueurDebutBalise ) + strlen( $marqueurDebutBalise );
    $marqueurFinBalise = '">';
    $finBalise = strpos( $texte, $marqueurFinBalise );
    $leTexte = substr( $texte, $debutBalise, $finBalise - $debutBalise );
    En espérant que cela te sois utile

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 94
    Points : 47
    Points
    47
    Par défaut
    Effectivement, cette solution est possible, en supprimant les espaces possibles, le majuscules possibles... C'est ainsi que j'ai fait en attendant. J'aimerais mieux trouver la solution dom, du genre removeChild, ne serait ce que pour l'élégance, et pour apprendre !

Discussions similaires

  1. [DOM] gestion du XML en PHP , DOM
    Par naazih dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 03/05/2008, 17h15
  2. [DOM] problème de syntaxe
    Par punky_brooster dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/12/2006, 13h23
  3. [PHP/DOM] XPath ?
    Par laetyboop dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 20/07/2006, 09h16
  4. [XML-PHP-DOM] Application web, gestion de la mémoire
    Par Zini dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/04/2006, 10h36

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