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 des informations d'un autre site web


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut Récupérer des informations d'un autre site web
    B'jour à tous!

    Je suis à la recherche d'une méthode me permettant de récupérer des informations d'un site web, depuis un script PHP.

    Je m'explique:
    J'aimerais pouvoir vérifier que l'image "image.jpg" est bien présente dans la page www.site.com/page d'un site qui ne m'appartient pas.
    J'imagine qu'il faut sonder le code source de la page générée mais je ne vois pas du tout comment faire et s'il existe des fonctions spéciales pour cela.

    J'ai tenté de chercher par moi même sur Google et sur le forum mais les bons mots clés de recherche sont très difficiles à trouver...

    Je vous remercie de votre aide!

    David Guillon

  2. #2
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    C'est plus simple que ça.

    Pour récuperer des fichiers, des images et autres d'un autre fichier, il suffit de le faire avec les instructions prévus par php comme tu le ferais en local.

    La difference, c'est que php va utiliser le protocole html:// pour le resoudre au lieu du protocole file://

    Par contre, il faut que l'attribut de configuration : allow_url_fopen soit a 1.
    Tous les servers ne le permettent pas. De plus, cette pratique est non sécurisé pour la principale raison : tu n'as aucun controle sur les données d'entrée.

    Attention, si un webmaster s'en rend compte et decide de se venger de toi (dans le cas ou tu n'as pas son accord), il pourrait remplacer le dit fichier par un autre et te renvoyer le nouveau (peu de chance que ça arrive)

    Donc ne recupere que des fichiers poru lesquels tu as un accord

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Merci pour cette réponse.

    Est ce que cela veut dire qu'il me suffit de faire un truc du genre "if exists "image.html" ou un truc comme ça? Mais où dois-je définir l'adresse où aller vérifier cette existence? (je trouverai peut-être la réponse dans l'aide PHP sur la fonction Exists, si c'est ça que je dois utiliser)

    Je ne compte pas récupérer de données depuis l'autre site web mais simplement vérifier l'existence d'une donnée. Dois-je alors modifier la valeur de configuration allow_url_fopen ?

    Merci

  4. #4
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    http://ie2.php.net/file_exists

    Par contre, je ne suis pas sur pour cette instruction que tu aies besoin de modifier allow_url_fopen mais a verifier tout de meme.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Super, merci.

    Je ne peux pas tester maintenant la chose, mais je le ferai sans doute demain.

    Sur le lien que tu viens de me donner, ils parlent de vérifier la présence ou non d'un fichier.
    Admettons, et ça sera le cas, que je veuille vérifier la présence d'une simple donnée texte. Par exemple, je veux vérifier que le mot "blabla" existe, dois-je utiliser la même chose?

    Je me pose réellement la question... parce que "file_exists" va-t-il vérifier réellement que "image.jpg" existe ou va-t-il vérifier que l'appel est bien effectué?

    Merci de ton aide, et désolé de ne pas pouvoir tester ça maintenant.

    David

  6. #6
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    jpeg est un fichier, le mot blabla est contenu dans un fichier. C'est 2 choses differentes.

    Pour le jpeg, je sais que j'ai effectué des uploads par cette methode sans soucis. je n'ai pas mon code à portée de la main pour verifier.

    Pour le mot blabla, il te faudra ouvrir le ficher html (va l'uploader sur le serveur), charger son contenu, parser le contenu avec une expression réguliere ou autre chaine de recherche de caractere.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Hum, j'ai tenté d'avancer un peu dans mes recherches en faisant des tests. Puisque ma requête porte sur la présence d'une chaîne de caractères, et non d'un fichier, j'ai trouvé deux fonctions qui pourraient m'être utiles.

    preg_match() et preg_match_all().
    J'ai tenté avec la première mais j'ai bien l'impression qu'on ne peut pas effectuer la recherche sur une page distante.
    Cependant avec la seconde, je ne comprends pas comment l'exploiter...

    J'ai donc essayé avec la première, en partant de l'exemple donné sur php.net, à savoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    // Le "i" après le délimiteur du pattern indique que la recherche ne sera pas sensible à la casse
    if (preg_match("/php/i", "PHP est le meilleur langage de script du web.")) {
        echo "Un résultat a été trouvé.";
    } else {
        echo "Aucun résultat n'a été trouvé.";
    }
    ?>
    que j'ai tenté de modifier en gros comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    // Le "i" après le délimiteur du pattern indique que la recherche ne sera pas sensible à la casse
    $page = "D:\Programmation\Parsage\page.html";
    if (preg_match("/php/i",  $page)) {
        echo "Un résultat a été trouvé.";
    } else {
        echo "Aucun résultat n'a été trouvé.";
    }
    ?>
    Bien évidemment ça ne fonctionne pas puisque l'adresse est transformée en chaîne de caractères (et sans guillemets, ça ne passe pas).

    Dois-je me résoudre à utiliser preg_match_all? Si oui quelqu'un peut me faire un exemple super simple d'utilisation? Je n'arrive pas à faire fonctionnes les exemples de php.net.

    Merci bien encore une fois

    David

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Je me rend compte que mon message n'est plus sur le forum approprié. Je vous remercie de m'avoir aiguillé sur le bon chemin.
    Je vais poser ma question sur le forum correspondant.

    Bonne soirée à tous!

    David

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

Discussions similaires

  1. Récupérer du texte sur un autre site web
    Par s-c-a-r-a dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2009, 14h11
  2. Récupérer une valeur d'un autre site web?
    Par Norin dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 10/06/2008, 20h02
  3. Réponses: 1
    Dernier message: 30/01/2008, 16h42
  4. 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
  5. Récupérer les informations d'un autre site
    Par deelyth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/01/2006, 09h44

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