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 :

Extraction du contenu d'une page wiki [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 196
    Points : 69
    Points
    69
    Par défaut Extraction du contenu d'une page wiki
    Bonjour,

    Sur mon site, j'ai mis un wiki.

    Je voudrais extraire la partie texte pour l'afficher dans une page.
    La page wiki est : http://www.scf.asso.fr/wiki/index.ph...onflage_Nitrox
    Le texte à extraire est entre les balises <div id="bodyContent" class="mw-body-content"> .... et sa fin </div>

    Comment faire ?

    Merci pour votre aide.


    Eddy

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux utiliser des classes d'analyse comme Domdocument ou SimpleXML pour extraire la partie souhaitée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 196
    Points : 69
    Points
    69
    Par défaut
    ce n'est pas pour des pages XML ?

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut, non pas que.
    Vous pouvez utiliser DomDocument avec loadHtml pour charger la page, et getElementById + nodeValue pour récupérer le contenu de la div
    Le bienfait n'est jamais perdu

  5. #5
    Membre du Club
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 196
    Points : 69
    Points
    69
    Par défaut
    OK, ça progresse, merci pour votre aide.

    J'ai réussi à extraire ce qui m'intéressait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $html = file_get_contents("http://www.scf.asso.fr/wiki/index.php?title=Gonflage_Nitrox");
     
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    $element = $dom->getElementById('mw-content-text');
    $domtxt = $element->nodeValue;
    echo $domtxt ;
    seulement, je n'extrait pas toutes les balises entre la chaine extraite, donc j'ai le texte brut, sans le formatage.
    Comment faire pour le récupérer ainsi ?
    <div id="mw-content-text" lang="fr" dir="ltr" class="mw-content-ltr">
    <h2><span class="mw-headline" id="Organisation_du_gonflage:">Organisation du gonflage:</span></h2>
    <p>Le club met en vente des cartes de gonflage de 30 et 50 €.
    Après chaque gonflage, le gonfleur déduira le coût du gonflage du montant initial jusqu’à épuisement du solde.
    Ceci simplifiera les comptes. Seule sera comptabilisée la quantité réelle d’oxygène rajoutée dans les blocs à gonfler.</p>
    <p>La demande d’achat se fait via le site du SCF dans le menu Sortie Plongée Club \ Faire une demande de gonflage Nitrox</p>
    <p>Une fois votre demande d’achat effectuée, mettre votre règlement dans la boite aux lettres du club si c'est par chèque ou
    le remettre directement au trésorier si en espèce, ou alors il est également possible de faire un virement bancaire.
    Votre carte de gonflage sera mise à disposition des gonfleurs Nitrox.</p>
    <p>Sous ce même menu, vous indiquerez le mélange souhaité ainsi que la date souhaitée.
    A la validation de votre demande, vous recevez un e-mail qui résume votre demande. Imprimez-le et mettez votre bloc à gonfler à côté de la cage fermée destinée au Nitrox (en face de la cage du compresseur). Si vous plongez avec un bloc du club, procédez de la même manière en associant votre document imprimé à un bloc du club.
    </p>
    <p>Les demandeurs doivent prévoir au moins une semaine à l'avance leur gonflage. Car, contrairement au gonflage à l'air, nous ne disposons pas de tampons de Nitrox. Le gonflage reste donc assez long à effectuer et les gonfleurs sont bénévoles (ne l’oublions pas). Sur un délai plus court, je vous conseille de contacter l’un des trois gonfleurs pour vérifier la faisabilité. Et à moins de 3 jours, le site n’autorise plus les demandes.
    </p>
    <h2><span class="mw-headline" id="Co.C3.BBts">Coûts</span></h2>
    <p>Le coût du gonflage est fixé à prix coutant soit&nbsp;:</p>
    <p>7.41 € pour un bloc de 15 litres à 32%</p>
    <p>5.10 € pour un bloc de 6 litres à 40%</p>
    <p>3.82 € pour un bloc de 6 litres à 40% dont il restait 50 b de Nx40.</p>
    <p>Ce coût tient compte d'un certain volume annuel, du prix de l’O2, de la location des B50 et du renouvellement des cellules d’analyse d’O2. En fonction de notre consommation, ce prix pourra être révisé. Plus la consommation sera importante, moins cela coutera cher.</p>
    <h2><span class="mw-headline" id="Mat.C3.A9riel_utilisable">Matériel utilisable</span></h2>
    <p>Le matériel utilisé pour l'air est compatible avec le Nitrox jusqu’à 40% inclus. Il n'est donc pas nécessaire d'investir dans du matériel spécifique.</p>
    <p>Pour ceux qui disposeraient déjà de matériels compatibles Nitrox ou O2, il sera nécessaire à ce que vous apportiez votre surfiltre afin de conserver la propreté du bloc et du détendeur.</p>
    </div>

  6. #6
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Regardez ici https://stackoverflow.com/questions/...answer-2087136, la fonction DOMinnerHTML ,
    testé mais il ne prendra pas la div parente , que ces descendants (donc à partir de h2). Il y'a sûrement moyen de faire quelque chose pour que ça soit le cas. Donc votre nouveau code deviendra

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $html = file_get_contents("http://www.scf.asso.fr/wiki/index.php?title=Gonflage_Nitrox");
    $dom = new DOMDocument();
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput       = true;
    $dom->loadHTML($html);
    $element = $dom->getElementById('mw-content-text');
    $content = DOMinnerHTML($element);
    Le bienfait n'est jamais perdu

  7. #7
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Citation Envoyé par Eddoul
    seulement, je n'extrait pas toutes les balises entre la chaine extraite, donc j'ai le texte brut, sans le formatage.
    Comment faire pour le récupérer ainsi ?
    Si je comprends bien, on peut faire comme ça.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sout=$dom->saveXML($element);
    echo $sout;

  8. #8
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Bah +1 , effectivement c'est plus simple ainsi et ça règle le soucis de la non récupération de la "div"
    Le bienfait n'est jamais perdu

  9. #9
    Membre du Club
    Homme Profil pro
    Cobol sur Mainframe et Unix AIX
    Inscrit en
    Mars 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cobol sur Mainframe et Unix AIX

    Informations forums :
    Inscription : Mars 2012
    Messages : 196
    Points : 69
    Points
    69
    Par défaut
    c(est exactement ça.

    UN GRAND MERCI pour votre aide.

    Bonne journée,

    Eddy

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

Discussions similaires

  1. [SP-2013] Contenu d'une page de Wiki dynamique selon utilisateur
    Par Samuel_ dans le forum SharePoint
    Réponses: 3
    Dernier message: 25/06/2014, 17h24
  2. [JSP][WEB] recuperer le contenu d'une page web
    Par ypikahe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2008, 10h10
  3. recuperer le contenu d'une page web
    Par firejocker dans le forum MFC
    Réponses: 26
    Dernier message: 11/10/2005, 17h27
  4. copier le contenu d'une page web dans un fichier texte
    Par wassila dans le forum C++Builder
    Réponses: 30
    Dernier message: 28/08/2005, 22h27
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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