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 l'image son titre et la date


Sujet :

Langage PHP

  1. #1
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut Récupérer l'image son titre et la date
    Bonjour à tous,

    J'aimerais récupéré l'image de ce code avec son titre ainsi que la date.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <ul class="FloatLeft">
    	<li class="PODItem">
    		<a id="POD16" class="DisplayBlock">
    		<img style="border-width: 0px; margin: 0pt auto; display: block;" alt="titre_image [gall  - 16 juin 2011]" src="http://media.galltv.com/POD/658.jpg">
    		</a>
    		<div style="width: 940px;" class="FloatLeft">
    			<span class="ItemDate">16 juin 2011</span>
    			<span class="FloatRight VMargin5">
    			<a target="_blank" href="http://twitter.com/share?url=http%3a%2f%2fgalltv.com%2fae%2fgall%2f2011%2f%2011" class="FloatLeft twitterShare" onclick="return openShare('http://twitter.com/share?url=http%3a%2f%2fgalltv.com%2fae%2fgall%2f2011%2f%2011')">
    				<span class="left"></span>
    				<span class="middle">Share on Twitter</span>
    				<span class="right"></span>
    			</a>
    			<a target="_blank" href="http://www.facebook.com/share.php?u=http%3a%2f%2fgalltv.com%2fae%2fphoto%2f2011%2f06%2f16" class="FloatLeft HMargin10 facebookShare" onclick="return openShare('http://www.facebook.com/share.php?u=http%3a%2f%2fgalltv.com%2fae%2fgall%2f2011%2f06%2f16')">
    				<span class="left"></span>
    				<span class="middle">Share on Facebook</span>
    				<span class="right"></span>
    			</a>
    			</span>
    		</div>
    		<div class="ItemDescription">titre_image</div>
    		<div class="ItemPhotographer">Feo Pirayandeh</div>
    	</li>
    	<li class="PODItem">
    		...
    	</li>
    	<li class="PODItem">
    		...
    	</li>
    	<li class="PODItem">
    		...
    	</li>
    	<li class="PODItem">
    		...
    	</li>
    </ul>
    J'ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match ('!<li class="PODItem"><img.*?(?:(?:\s+(src)="([^"]+)")|(?:\s+(alt)="([^"]+)")|(?:\s+(title)="([^"]+)")|(?:\s+[^\s]+))+.*/>\s*</li>!s'  , $ch , &$matches1);
    Mais ça n'a pas marché.

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour,

    Pour parcourir un document HTML et récupérer des informations, il est préférable d'utiliser DOMDocument à la place des expressions régulières.

    Dans ton cas, tu peux essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $html = file_get_contents(dirname(__FILE__) . '/page.html'); // Récupération du contenu de la page HTML
     
    $document = new DOMDocument();
    $document->loadHTML($html);
     
    $xpath = new DOMXPath($document);
    $entries = $xpath->query('//li[@class="PODItem"]/a/img');
     
    foreach ($entries as $entry) {
    	echo $entry->getAttribute('alt');
    }
    ?>
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    file_get_contents + loadHTML = loadHTMLFile

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    file_get_contents + loadHTML = loadHTMLFile
    En effet, j'ai utilisé cette syntaxe pour que la lecture du contenu soit indépendante du chargement avec DOMDocument.

    Mais tu as parfaitement raison, autant faire simple
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  5. #5
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut
    Voila le code final :

    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
    24
    25
    26
    27
    28
    <?php
    $html =  getHtmlCodeViaCurl($url);
     
    $document = new DOMDocument("UTF-8");
    @$document->loadHTML($html);
     
    $xpath = new DOMXPath($document);
     
    //img
    $entries = $xpath->query('//li[@class="PODItem"][1]/a/img');
     
    $src_img = $entries->item(0)->getAttribute('src');
    $alt_img = $entries->item(0)->getAttribute('alt');
     
    //title 
    $entries = $xpath->query('//li[@class="PODItem"][1]/div[2]');
    $title_img = $entries->item(0)->nodeValue;
     
    //date 
    $entries = $xpath->query('//li[@class="PODItem"][1]/div/span');
    $date_img = $entries->item(0)->nodeValue;
     
    echo '<div style="text-align:center;">';
    echo '<img style="border-width: 0px; margin: 0pt auto; display: block;" alt="'.$alt_img.'" src="'.$src_img.'">';
    echo '<div class="ItemDecription">'.$title_img.'</div>';
    echo '<div class="ItemDate">'.$date_img.'</div>';
    echo '</div>';
    ?>
    Merci Nesmontou et stealth35.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pour t'as getHtmlCodeViaCurl ? t'as des headers a fournir en plus ?

  7. #7
    apt
    apt est déconnecté
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Points : 118
    Points
    118
    Par défaut
    J'ai seulement ajouté au début de code cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("(anti-spam-content-type:) text/html; charset=utf-8");

Discussions similaires

  1. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  2. Récupérer une image de son formulaire
    Par cdevl32 dans le forum Langage
    Réponses: 6
    Dernier message: 06/09/2007, 23h56
  3. [Mpeg4] récupérer une image d'un flux MPEG4.
    Par Drizztrobber dans le forum Multimédia
    Réponses: 10
    Dernier message: 19/03/2007, 10h01
  4. [Swing] récupérer une image d'un composant
    Par klemouf dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/09/2004, 10h24
  5. Récupérer 1 image insérée ds 1 contrôle "Picture"
    Par Yacine95000 dans le forum MFC
    Réponses: 18
    Dernier message: 05/08/2004, 18h08

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