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 un flux HTML derrière un PROXY


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 25
    Points
    25
    Par défaut Récupérer un flux HTML derrière un PROXY
    Bonjour à tous,

    Voilà, j'utilise le code suivant pour récupérer un flux HTML (ce code fonctionne nickel SANS proxy) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
      $query = join("",file("http://www.toto.com"));
      echo $query;
    ?>
    Cependant, chez le client ca ne fonctionne pas et pour cause, il se trouve derrière un proxy (standard port 80).

    Existe-t-il un moyen de préciser à mon stream de passer par le proxy (puisque je fais du HTTP) ?


    Merci de votre aide

    nineosoe (Fabrice)

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il faut créer un contexte d'abord (possible uniquement avec les versions 5) et préciser les options voulues par rapport au protocole utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $opts = array(
        'http' => array(
            'proxy' => 'tcp://proxy.example.com:80'
        )
    );
     
    $contexte = stream_context_create($opts);
    $query = join("", file("http://www.toto.com", 0, $contexte));
    (enfin y a l'idée)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 25
    Points
    25
    Par défaut
    En cherchant (mieux ) j'ai trouvé s/PHP.NET :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
      $default_opts = array(
      'http'=>array(
          'method'=>"GET",
          'header'=>"Accept-language: en\r\n" . 
          "Cookie: foo=bar",
          'proxy'=>"tcp://10.12.34.56:80"
        )
      );
     
    $default = stream_context_get_default($default_opts);
    $query = readfile('http://www.toto.com');
    Et ca fonctionne...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 25
    Points
    25
    Par défaut
    Trop fort julp et merci encore. Tu me donne une fonction de contexte plus pratique encore.

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

Discussions similaires

  1. petit programme pour récupérer flux html
    Par BnLucky dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 04/03/2012, 14h29
  2. Réponses: 1
    Dernier message: 26/08/2010, 09h53
  3. Connexion derrière un proxy pour Firebird ???
    Par .:morgoth:. dans le forum Connexion aux bases de données
    Réponses: 8
    Dernier message: 17/02/2005, 09h32
  4. Récupérer le code HTML d'une page avec Delphi 7
    Par PsyKroPack dans le forum Web & réseau
    Réponses: 5
    Dernier message: 06/02/2003, 21h56

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