Récupérer le contenu des alt d'une page ???

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par DecibelMan, 17 Octobre 2005.

  1. DecibelMan
    DecibelMan WRInaute discret
    Inscrit:
    10 Juillet 2005
    Messages:
    123
    J'aime reçus:
    0
    Bonjour,je cherche un script php qui ecrit dans un tableau ou un fichier txt le contenu des alt="...." d'un fichier php ???
    ça existe???
    Merci.
     
  2. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    Code:
    <?php
    // Le bout de code HTML à parser
    // Il peut venir d'un fichier en local ou d'un GET sur Internet ou autre
    // bad html string
    $html = <<< HTML
    <head>
    <title>Test Tidy</title>
    </head>
    <body>
    <H1>Get the alt atribute of an html page</H1>
    <p class="bar">paragraphe</p>
    <img src="" alt="image 1" />
    <img src="" alt="image 2" />
    <br/>
    <div id="tidy" class="foo">
    	<img src="" alt="image3" />
    <div>
    </body>
    </html>
    <html lang="fr">
    HTML;
    // Fin du bout de code HTML
    // le HTML est faux => balise <html> en fin de fichier
    // => réparé automatiquement par tidy
    
    
    // Instance d'un nouvel objet tidy
    $tidy = tidy_parse_string($html);
    
    // tidy répare le code HTML
    tidy_clean_repair( $tidy ) ;
    
    // well formed html
    // sortie HTML pour voir le code HTML réparé
    echo $tidy ;
    
    // Récupére la racine de l'arbre html : $tidy->root()
    // getAlt Est une fct recursive qui permet de parcourir tout l'arbre
    getAlt($tidy->root());
    
    function getAlt($node) {
    
     // Est-ce que le noeud courant a des fils ?  
     if($node->hasChildren()) {
           // Pour chacun des fils du noeud courant
            foreach($node->child as $child) {
                
                // Traitment avec chacun des attributs ( là c peut-être un peu faux) => ici tu fait ce que tu veux.
                 foreach ($child->attribute as $attribut ) {
           		 if ( isset( $child->attribute["alt"] ) ) {
           		 	 echo $attribut . "<br />"  ;
           		 }        	
               }
              // Appel récursif de la fonction
               getAlt($child);
           }
       }
    }
    ?>
    
    Il existe bien sûr des méthodes plus simple à base de regexp.
    Je préfère des outils qui parsent le code HTML (tidy, par exemple), ils sont plus souple et plus puissant. Il faut adapter le code.

    Il y a une fct spécifique pour les attributs :
    http://fr2.php.net/manual/fr/function.t ... t-attr.php, elle a pas marché chez moi.
     
  3. DecibelMan
    DecibelMan WRInaute discret
    Inscrit:
    10 Juillet 2005
    Messages:
    123
    J'aime reçus:
    0
    Merci beaucoup pour l'info j'avais cherché sur le web et j'avais rien vu...
    là je vais essayer de piger le code...plus les infos du site.
    Un grand merci.. :wink:
     
  4. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    je viens de te commenter le code source si ça peut t'aider.
     
  5. DecibelMan
    DecibelMan WRInaute discret
    Inscrit:
    10 Juillet 2005
    Messages:
    123
    J'aime reçus:
    0
    Merci,ce que je comprenais pas :
    $html = <<< HTML ce que ça veux dire
    <html lang="fr">
    HTML;
    j'avais jamais vu cette syntaxe...
    Fonction récursive getAlt($tidy->root()) c'est un algo que je connaissais pas...
    Je fais des tests pour voir le resultat.
    il me marque erreur pour :
    $tidy = tidy_parse_string($html);
    peut-être c'est une fonction trop récente pour ma version php ?
     
  6. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    heredoc syntax. ça te permet d'écrire rapidement dans une variable.
    Il est évident que toi tu vas ouvrir un fichier, ou récupérer le contenu différemment.

    La récursivité est un moyen de simplifier ( ou des fois de compliquer :D ) des algos.
    Pour traiter un arbre HTML la récursivité est à ma connaisance un des moyens le plus simple.

    http://fr2.php.net/manual/fr/ref.tidy.php
    PHP > 4.3.x

    par contre il faut que tidy soit installé sur ton serveur et que PHP soit compilé avec le support de tidy.

    si ça ne marche pas il faut que tu passes par des regexp.
    Là, ça fait trop longtemps que je n'ai pas pratiqué pour pouvoir t'aider. La regexp doit être assez simple quand même
     
  7. DecibelMan
    DecibelMan WRInaute discret
    Inscrit:
    10 Juillet 2005
    Messages:
    123
    J'aime reçus:
    0
    Oui sympa,
    j'avais pensé aux expressions régulières au départ mais j'avais pas le bon début donc je cherchais une autre fonction.
    j'ai regardé regexp et je crois avoir trouvé là une façon de faire...
    C'est pas si facile je vais bosser...:)

    le truc c'est que dans mes pages a scanner je vais faire un include et récupérer les valeurs dans un tableau que je vais afficher...ensuite....
     
Chargement...
Similar Threads - Récupérer contenu alt Forum Date
Récupérer le contenu d'une vidéo youtube Le café de WebRankInfo 23 Mars 2020
Comment récupérer proprement le contenu de la balise TITLE d'une page ? Développement d'un site Web ou d'une appli mobile 22 Avril 2017
Récupérer contenu sur site pénalisé Débuter en référencement 8 Septembre 2016
Comment récupérer du contenu de ndd expirés ? Référencement Google 14 Avril 2016
récupérer le contenu d'un select en php Développement d'un site Web ou d'une appli mobile 24 Mai 2012
Récupérer le contenu d'une page facebook en php ? Développement d'un site Web ou d'une appli mobile 26 Février 2011
lociciel ou script php pour recuperer le contenu d'un site Développement d'un site Web ou d'une appli mobile 12 Janvier 2011
Récupérer contenu de la page google par file_get_contents Développement d'un site Web ou d'une appli mobile 23 Avril 2010
récupérer le contenue d'une page web Développement d'un site Web ou d'une appli mobile 24 Mars 2010
Récupérer contenu vidéo distante ? Développement d'un site Web ou d'une appli mobile 25 Février 2006
Récupérer le contenu d'une variable pour la mettre dans l'ur URL Rewriting et .htaccess 11 Octobre 2005
Récupérer URL destination liste redirection Netlinking, backlinks, liens et redirections 22 Novembre 2021
Récupérer les 10 plus grandes valeurs dans un fichier JSON Développement d'un site Web ou d'une appli mobile 18 Novembre 2021
Js : récupérer un élément dans un array Développement d'un site Web ou d'une appli mobile 23 Octobre 2021
FORMULAIRE FB ADS récupérer les données Facebook 28 Juillet 2021
Récupérer le premier et dernier enregistrement sql Développement d'un site Web ou d'une appli mobile 16 Juillet 2021
Comment récupérer le solde impayé de mon compte Adsense ? AdSense 26 Juin 2021
Search Console Sitemaps non indéxés ""Impossible de recuperer le sitemap" Crawl et indexation Google, sitemaps 23 Juillet 2020
Récupérer backlinks vers liens morts : fausse bonne idée ? Netlinking, backlinks, liens et redirections 6 Avril 2020
Comment récupérer un compte insta ouvert par un cybersquatteur ? Autres réseaux sociaux 29 Janvier 2020