Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
888 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Lire une page distante avec fopen

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lire une page distante avec fopen

n°1278987
Mush22
Le temps se chargera du reste.
Posté le 08-01-2006 à 11:05:42  profilanswer
 

Bonjour,
 
Je souhaite installer dans mon admin un script qui me permet de vérifier un lien retour sur une page distante. J'ai donc bricolé ceci :

Code :
  1. <?
  2. $page = "http://www.urldistante.com/";
  3. $handle = fopen($page, "r" );
  4. echo $contenu = fread ($handle, filesize ($page));
  5. if(ereg("textedulien",$contenu)){
  6. echo 'lien retour présent';
  7. }else{
  8. echo 'lien retour absent';
  9. }
  10. fclose ($handle);
  11. ?>


 
Ca ne marche pas très fort, connaissez vous des méthodes plus adaptées/performantes?
 
Merci.

mood
Publicité
Posté le 08-01-2006 à 11:05:42  profilanswer
 

n°1279002
afbilou
pouet your life
Posté le 08-01-2006 à 11:34:01  profilanswer
 

Ton serveur peut etre configure pour ne pas autoriser l'ouverture de fichier distant par fopen (et ses derivés). Vérifie le parametre "allow_url_fopen" dans le tableau retourné par phpinfo(); pour savoir si tu es concerné par cette restriction. D'une maniere générale tu dois de toute facon verifier le resultat de fopen pour t'assurer le succès de l'operation avant de continuer.
 
file size($page) ne fonctionnera pas avec un fichier distant sauf avec les toutes dernières versions de PHP5. Vérifie la valeur retournée : echo est ton ami.
 
ereg n'est pas adaptée pour ton cas ! preg_match et preg_match_all est bien plus puissante et plus rapide d'execution que ereg MAIS dans ton cas il vaut encore mieux se passer des expressions regulieres et utiliser les fonctions de recherche classique dans une chaine de caractères.


Message édité par afbilou le 08-01-2006 à 11:40:53
n°1279015
Mush22
Le temps se chargera du reste.
Posté le 08-01-2006 à 12:01:59  profilanswer
 

Salut,
 
Merci pour ces détails. Concernant la configuration serveur, pas de soucis : allow_url_fopen On On
L'accès est autorisé.  
 
La fonction filesize a en effet l'air de ne pas fonctionner :  
Warning: filesize(): Stat failed for -http://www.*********.com/index.html (errno=2 - No such file or directory) in /usr2/w*b/***er*e/***u/c****s/***.php on line 4
 
Quant à la fonction ereg, je suis bien d'accord avec toi, l'utilisation des expressions régulières n'est pas forcément adapté.
 
Que donnerait le code dans ce cas?

n°1279030
afbilou
pouet your life
Posté le 08-01-2006 à 12:37:37  profilanswer
 

$contenu = file_get_contents($page);
 
if (strpos($contenu , 'texte_du_lien')) {
     echo 'Youppi !!!';
}
else {
     echo 'A pas lien :(';
}

n°1279059
Mush22
Le temps se chargera du reste.
Posté le 08-01-2006 à 13:19:24  profilanswer
 

C'"est parfois si simple :)
 
Merci abfilou pour ton aide :)

n°1279073
afbilou
pouet your life
Posté le 08-01-2006 à 13:41:15  profilanswer
 

N'oublie pas de verifier les retour de tes fonctions surtout quand tu travaille sur des ressources telles que les fichiers.
 
if ($fichier = fopen('...' , '...'))
{
     // traitements ...
 
     fclose($fichier);
}
else
{ // le fichier n'a pas pu etre ouvert
}
 
Pour te convaincre de ne plus utiliser les expressions regulieres POSIX (fonctiones ereg* de PHP) voici un bon site sur les expressions regulieres Perl : http://www.lumadis.be/regex/index.php
La version francaise du tuto : http://www.lumadis.be/regex/tuto_pcre.php
Un simulateur tres tres tres bien fait qui permet de faire des tests et de rapidement voir les resultats :) http://www.lumadis.be/regex/test_regex.php?lang=fr


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Lire une page distante avec fopen

 

Sujets relatifs
"Retour haut de page" masquablePage HTML sous contrôle script WSH
Comment insérer une page dans une page ?Tramme avec page unique
rechercher d'un lien actif sur une page exterieurrechercher un lien actif dans une page externe
Referencement : espace dans le nom de page ?Garder les données d'une page à l'autre
macro sur page internetouvrir page html
Plus de sujets relatifs à : Lire une page distante avec fopen


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR