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 :

Récupérer contenu balise p


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Récupérer contenu balise p
    Bonjour à tous,
    Je débute en PHP. Je cherche à pouvoir récupérer le contenu d'une balise selon son id
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p id='theId'>le contenu a récupérer</p
    >.
    Pour une balise DIV pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $doc = new DomDocument;
    $doc->validateOnParse = true;
    $doc->LoadHTML($content);
     
    $p = $doc->getElementById('section2')->getElementsByTagName('div');
     
     
    foreach($p AS $elem) {
    	echo $elem->nodeValue.'<br />';
    mais avec une balise P comment faire ?

    Merci pour votre coup de main.
    Dernière modification par sabotage ; 22/01/2016 à 10h06.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne comprends pas bien ton problème, le type de balise n'a pas d'importance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $p = $doc->getElementById('theId')
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Au passage, le code de ton 1er message $p = $doc->getElementById('section2')->getElementsByTagName('div'); te remonte les div à l'intérieur de l'élément qui porte l'id cible, et non pas la div qui porte l'id cible.
    Dans si tu veux l'équivalent pour des éléments p, il faut juste remplacer "div" par "p"
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celira Voir le message
    Au passage, le code de ton 1er message $p = $doc->getElementById('section2')->getElementsByTagName('div'); te remonte les div à l'intérieur de l'élément qui porte l'id cible, et non pas la div qui porte l'id cible.
    Dans si tu veux l'équivalent pour des éléments p, il faut juste remplacer "div" par "p"

    Merci Celira pour ta réponse.
    Ce que j'ai fait:
    j'ai ajouté la ligne : "libxml_use_internal_errors(false); " après "$doc = new DomDocument;"
    et du coup j'obtiens l'erreur : "Warning: DOMDocument::loadHTML(): htmlParseEntityRef: no name in Entity, line: 83 in /var/www/html/PHP-1.php on line 9"
    ligne 9 = "$doc->LoadHTML($page);"

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Euh... je ne vois pas le rapport ni avec le code d'origine, ni avec ta demande, ni même avec ma remarque

    Poste ton nouveau code et un exemple de données html à parser.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celira Voir le message
    Euh... je ne vois pas le rapport ni avec le code d'origine, ni avec ta demande, ni même avec ma remarque

    Poste ton nouveau code et un exemple de données html à parser.
    C'est juste, c'est pas clair mon affaire.
    En fait, quand je remplace DIV par P ("$p = $doc->getElementById('p67')->getElementsByTagName('p');"), j'obtiens une page blanche parce que les erreurs sont masquées, j'ai donc ajouté la ligne "libxml_use_internal_errors(false); " pour les faire apparaitre et c'est à ce moment là que j'obtiens l'erreur.
    Cette erreur je ne l'obtiens pas si je récupère le contenu d'une DIV.

Discussions similaires

  1. Récupérer contenu balise xml
    Par chris52 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 20/10/2014, 15h39
  2. [RegEx] Récupérer contenu balise dans un tableau
    Par Darkcristal dans le forum Langage
    Réponses: 4
    Dernier message: 13/12/2008, 21h07
  3. [AJAX] récupérer contenu d'une balise xml
    Par Braillane dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/06/2007, 08h08
  4. Récupérer contenu balises HTML
    Par Sopra dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/04/2007, 16h45
  5. [ActionScript] Récupérer valeur balise <param />
    Par JohnBlatt dans le forum Flash
    Réponses: 1
    Dernier message: 18/07/2005, 14h50

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