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

EDI, CMS, Outils, Scripts et API PHP Discussion :

CURL et DOMDocument


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre éclairé Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Points : 761
    Points
    761
    Par défaut CURL et DOMDocument
    Bonjour à tous, j'ai un petit soucis de syntaxe sur un morceaux de code que je n'arrive pas à résoudre.

    Je souhaite récupérer les images d'une page distante.

    Le message d'erreur est assez clair, mon soucis est que je ne comprend pas pourquoi il me considère ma fonction find() comme non objet ! Sauriez vous m'indiquer une piste vers mon erreur ?

    Merci

    Call to a member function find() on a non-object in

    Code php : 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
     
    <?php
     
    //page source de l'image
    $wikipediaURL = 'http://fr.wikipedia.org/wiki/Php';
     
     
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $wikipediaURL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Google index (www.google.fr');
    $resultat = curl_exec($ch);
    curl_close($ch);
     
    //nouveau document DOM
    $pagerecup = new DOMDocument($resultat);
    //chargement du contenu de curl
    $loadHTML = $pagerecup->loadHTML($resultat);
     
    //traitement et affichage
    foreach($loadHTML->find('img') as $element) 
           echo $element->src . '<br>';
     
    ?>

  2. #2
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    je debuggerais pas ton script, désolé
    mais je peux essayer de te mettre sur une piste
    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
    function getImages($html) {
     $matches = array();
     $regex = '~http://somedomain.com/images/(.*?)\.jpg~i';
     preg_match_all($regex, $html, $matches);
     foreach ($matches[1] as $img) {
     saveImg($img);
     }
    }
     
    function saveImg($name) {
     $url = 'http://somedomain.com/images/'.$name.'.jpg';
     $data = get_data($url);
     file_put_contents('photos/'.$name.'.jpg', $data);
    }
     
    $i = 1;
    $l = 101;
     
    while ($i < $l) {
     $html = get_data('http://somedomain.com/id/'.$i.'/');
     getImages($html);
     $i += 1;
    }
    Quand une réponse vous aide
    Et quand ça marche

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Bonjour Lekno,

    Pour récupérer une image sur une page distante, à mon avis il y a plus simple que CURL.

    Tu commences à trouver en php l'url de l'image et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $content = file_get_contents(  [ URL de l image ]   );
    file_put_contents("nom-du-repertoire/nom_image.jpg", $content);

Discussions similaires

  1. [xslt] DOMDocument
    Par ep31 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/12/2005, 13h19
  2. MSXML Writer et DOMDocument
    Par ep31 dans le forum MFC
    Réponses: 1
    Dernier message: 13/12/2005, 17h46
  3. [DOM] méthode DOMDocument->load() échoue
    Par shingara dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/11/2005, 17h13
  4. Dev-CPP et cURL (libcurl)
    Par firejocker dans le forum Dev-C++
    Réponses: 1
    Dernier message: 29/09/2005, 11h41

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