Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2008, 13h28   #1
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 13h46   #2
Membre éprouvé
 
Homme
Inscription : août 2006
Messages : 313
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

Informations forums :
Inscription : août 2006
Messages : 313
Points : 497
Points : 497
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
Phelim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 13h59   #3
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 14h04   #4
Membre éprouvé
 
Homme
Inscription : août 2006
Messages : 313
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

Informations forums :
Inscription : août 2006
Messages : 313
Points : 497
Points : 497
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.
Phelim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 14h15   #5
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 14h44   #6
Membre éprouvé
 
Homme
Inscription : août 2006
Messages : 313
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

Informations forums :
Inscription : août 2006
Messages : 313
Points : 497
Points : 497
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.
Phelim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 19h13   #7
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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 :
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 :
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 22h01   #8
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h16.


 
 
 
 
Partenaires

Hébergement Web