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 :

la fonction popen()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut la fonction popen()
    Bonjour,

    Je teste un petit programme en PHP avec la fonction popen()

    Ce programme est sensé me donner la configuration IP de ma machine

    Voici le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php 
     
    $fp=popen('ipconfig/all','r'); 
    echo nl2br(fread($fp,5000)); 
    pclose($fp); 
     
    ?>
    a) Résultat : pas d'erreur mais rien à l'écran

    b)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fp=popen("C:\\windows\\system32\\ipconfig.exe","r");
    Résultat : pas d'erreur mais j'ai seulement comme résultat : Configuration IP de Windows, c'est tout

    c)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fp=popen("C:/windows/system32/ipconfig.exe",'r');
    Résultat : même chose

    Merci pour une piste éventuelle

  2. #2
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ip = $_SERVER["REMOTE_ADDR"];
    c'est pas plus simple :-)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut
    Oui, bien sûr mais je teste cela avec d'autres commandes comme exec(), shell_exec(),.....et j'ai quelques soucis avec popen()

    J'ajoute que je travaille avec wampserver 2.0

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut
    Pour ceux que cela intéresse, j'ai trouvé la solution dans la DOC PHP 5

    Avertissement : manel PHP 5
    ---------------------------
    Lorsque vous lisez depuis n'importe quelle source qui n'est pas un fichier local, comme des flux retournés lors de la lecture de fichiers distants ou depuis popen() et fsockopen(), la lecture s'arrête après la réception d'un paquet. Il faut donc faire des boucles pour collecter les données par paquet, comme présenté ci-dessous

    J AI TESTE LES SOLUTIONS PROPOSEES , SEULE LA DEUXIEME FONCTIONNE
    magré que je travaille en PHP 5.2.9-2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    // Pour PHP 5 et suivant   ne fonctionne pas 
    //------------------------------------------
    $handle = fopen("http://www.example.com/", "rb");
    $contents = stream_get_contents($handle);
    fclose($handle);
    ?>
    // Cette solution fonctionne
    //-----------------------------
    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
    <?php
    $handle = fopen("http://www.example.com/", "rb");
    $contents = '';
    while (!feof($handle)) {
      $contents .= fread($handle, 8192);
    }
    fclose($handle);
    ?> 
     
     
    CE QUI DONNE DANS MON CAS
     
    $fp=popen('ipconfig/all','rb');
     
    $contents = '';
    while (!feof($fp)) {
      $contents .= fread($fp, 8192);
    }
    echo nl2br($contents);
     
    pclose($fp);

  5. #5
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Pourquoi écrire cela de cette façon alors qu'il existe une variable PHP qui contient déjà l'info ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SERVER['HTTP_HOST'];
    ----
    Ma réponse et celle de guigo se sont croisée.
    La différence réside dans le fait qu'une des 2 est le serveur et l'autre le client. Je suppose que tu travailles sur la machine qui héberge aussi le serveur donc, l'IP devrait être la même

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    un petit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    print_r($_SERVER);
    echo '</pre>';

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/12/2015, 09h15
  2. Pb fonction subprocess.popen
    Par julienr2512 dans le forum Général Python
    Réponses: 1
    Dernier message: 12/06/2013, 12h56
  3. Fonctionnement fonction popen
    Par Dobyan08 dans le forum C
    Réponses: 1
    Dernier message: 08/06/2006, 11h01
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 12h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 21h07

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