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 :

transférer des données d'un autres site web


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut transférer des données d'un autres site web
    Bonsoir,

    Comment faire pour transférer des données d'un autres site web exemple la bourse, météo... et de les sauvegarder dans une db ?

    avec ce bout de code ci dessous je n'obtient que le titre et je voudrais avoir également du contenu mais qu'une partie seulement.

    J'ai ceci déjà comme source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
     
    $url= ("http://www.developpez.com/") ;
    function get_file_title($file){
    $cont = file_get_contents($file);
     
    preg_match( "/<title>(.*)<\/title>/i", $cont, $match );
    return strip_tags($match[0]);
     
    }
    echo get_file_title("$url");
    ?>
    Pouvez vous m'aider ?

    bonne soirée

  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 nous montres une expression reguliere qui capture la balise "title".
    C'est exactement le même procédé pour tout élément que tu veux capturer dans le code HTML.

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Pouvez vous me donner un exemple ?

    Merci

  4. #4
    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 remplaces "title" par le nom d'une autre balise que tu veux capturer.

    Si tu as besoin de faire des choses plus poussées, il faut que tu te formes à la syntaxe des expressions regulières.

    Je te mets au passage en garde sur les questions de légalité dans la reprise de contenus sur le web.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Alternativement tu peux aussi utiliser DOMDocument pour parser la page.

    Par exemple pour récupérer ton premier message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php 
    $content = file_get_contents('http://www.developpez.net/forums/d975768/php/langage/regex/transferer-donnees-autres-site-web/');
     
    $doc = new DOMDocument();
    @$doc->loadHTML($content);
     
    $bloc = $doc->getElementById('post_message_5471986');
     
    foreach($bloc->childNodes as $node)
    {
    	echo '<pre>'.htmlspecialchars($node->nodeValue).'</pre>';
    }
    ?>
    Cela dit, en fonction de ce que tu veux faire et si tu ne connais pas bien le DOM et cette classe, ce ne sera pas nécessairement plus facile que de travailler avec les regex

  6. #6
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Bonsoir,

    Merci à vous sa fonctionne super
    Maitenant pour envoyer le tout dans ma db via Easyphp ou alors xml comment dois je faire ?

    Pouvez vous me donner un petit exemple ?

    Merci à vous

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Si tu veux nettoyer le texte (enlever les retours lignes et tabulations) avant de l'enregistrer en bdd, dans le cas de mon exemple tu peux faire :

    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
    $content = file_get_contents('http://www.developpez.net/forums/d975768/php/langage/regex/transferer-donnees-autres-site-web/');
     
    $doc = new DOMDocument();
    @$doc->loadHTML($content);
     
    $bloc = $doc->getElementById('post_message_5471986');
    $text = $bloc->textContent;
     
    function Nettoyage ($text)
    {
    	$cible = array("\r\n","\n","\t");
    	$remp = array('','','');	
    	return (str_replace($cible,$remp,$text));
    }
     
    $text = Nettoyage ($text);
    Et tu enregistre $text en bdd.

Discussions similaires

  1. Extraire des données spécifiques d'un site web
    Par Mkinosky dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/10/2011, 17h48
  2. Réponses: 3
    Dernier message: 10/10/2011, 11h10
  3. Prendre des données sur un autre site
    Par Oxdo68 dans le forum Débuter
    Réponses: 2
    Dernier message: 08/01/2011, 14h51
  4. Récupérer des informations d'un autre site web
    Par divad dans le forum Langage
    Réponses: 7
    Dernier message: 01/05/2008, 22h01
  5. Récupérer des données depuis un autre site
    Par cchampion2fr dans le forum Langage
    Réponses: 31
    Dernier message: 30/10/2006, 10h05

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