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 le contenu d'une page qui contient des erreurs


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Points : 43
    Points
    43
    Par défaut Récupérer le contenu d'une page qui contient des erreurs
    Bonjour, à tous

    Voilà mon petit souci, j'ai sur un site internet un script qui me permet de récupérer des partie de page internet, habituellement tout marche très bien, mais la je me retrouve un peu coincé.

    Je dois récupérer le code de page sur un site et les pages sont de ce type

    http://www.fininfo.fr/fininfong/GetD...=0&date=080507

    Le souci de ces pages est que tous les caractére spéciaux ne sont pas traduits donc lorsque j'importe le code de ces pages, il interprète tous les caractères spéciaux comme un point d'interrogation sur l’explorer et dans le code.

    La fonction que j'utilise pour récupérer le code de ma page est la suivante


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?
     
     
    function recup_code($url){
            $file = fopen($url,"rb");
     
            if(!$url){
    			exit("Impossible d'ouvrir le fichier");
    		}
    		$line ="";
            while(!feof($file)){
    			$line .= fread($file, 8192);
     
    		}
    		$line = addcslashes($line,"'");
    		fclose($file);
            return $line;
    	}
    ?>
     
     
    <?
     
     
     
    $url="http://www.fininfo.fr/fininfong/GetDerniereNews.event?lg=fr&urlAction=GetDerniereNews.event%3Flg%3Dfr&idnews=BNW080507_00005673&numligne=0&date=080507";
     
     
    $html = recup_code($url);
     
    echo $html;
     
    ?>
    j'ai pensé que sa pouvait peu être venir de fread qui du coup n'arrive pas à lire les caractère spéciaux non traduit, et les traduit à la place par un point d'interrogation.

    j'ai tenté avec file_get_content, mais j'obtiens exactement le même résultat

    Ce que je comprends le moins c'est que ce genre de fonction est censé récupérer le code d'une page à l'identique, même avec ces erreurs, à la limite sa ne me dérangerai pas qu’il me les récupères avec les erreurs je pourrais faire un remplacement de caractère.

    Je vous remercie d'avance de vos futures réponses

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par mrsoyer Voir le message
    Le souci de ces pages est que tous les caractére spéciaux ne sont pas traduits donc lorsque j'importe le code de ces pages, il interprète tous les caractères spéciaux comme un point d'interrogation sur l’explorer et dans le code.
    Sûrement une divergence de charsets entre le site en question et le tien.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Points : 43
    Points
    43
    Par défaut
    je pence oui sa doit être sa, mais comment je peu faire,

    c'est vraiment bisare, je sais pas si tu as regarder le code source de la page que je met en exemple, mais tout le site (le header, le menu etc) est bien fait les caractère spéciaux sont traduit, mais c'est au centre, la ou justement ou il y a les informations que je veux récupérer ou les caractères spéciaux ne sont pas traduit.

    Sur l'explorer par exemple un "é" est "é" dans le code source.

    sa ne pose aucun souci pour l'affichage, mais sa me pose un souci pour récupérer le code, l'on dirai qu'il ne veut pas récupérer les caractères spéciaux non traduit, qu'il ne les comprend pas.

    Es qu'il y aurait une solution pour pouvoir traduire ces fameux caractères spéciaux avant de récupérer le code avec fread ou alors il y a t'il une autre fonction que fread, ou bien une autre fonction que fopen ????

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    J'ai fait un simple echo file_get_contents('http://...') et la page s'affiche correctement (cap plus bas).
    Mon serveur envoie du ISO-8859-1. Et le tien ?

    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Points : 43
    Points
    43
    Par défaut
    A oui, alors sa c'est complètement fou, je viens de retester avec file_get_content et non, j'ai toujours le même problème.

    Mon serveur est mamp et envoi bien du ISO-8859-1 peu être est ce dut au fait que je travaille sur mac.

    Je vais tester sur mon serveur web, peu être que sa marchera, sa serai bien coul.

    Merci tout de même.

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Points : 43
    Points
    43
    Par défaut
    je sais que mac n'est généralement pas trop aimé pour le développement.
    Mais je n'ai jamais eu de souci, mis a part avec les css.

    Je travaille sur mac car je suis graphiste et je trouve sa plus agréable que pc, je bidouille seulement en web.

    Je ne peu pas tester tout de suite avec mon serveur web, mais si cela viens de sa désolé d'avoir posté ces messages sans avoir essayé avant.

    Merci

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    Essaie ce script simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-Type: text/plain') ;
    echo file_get_contents('http://...') ;
    ... ça suffira peut-être.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. Ajout automatique d'une page qui contient des WebParts dans une bibliothèque
    Par hassine dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 29/04/2011, 08h36
  2. Réponses: 6
    Dernier message: 25/03/2010, 19h13
  3. Appeler une page qui contient un contenu actif
    Par mbouskia dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/05/2008, 12h34
  4. Réponses: 15
    Dernier message: 05/09/2006, 12h08
  5. comment faire une redirection vers une page qui contient des framsets
    Par zana74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/08/2006, 13h03

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