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 :

Qu'est-ce que STDIN


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Sans
    Inscrit en
    Novembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Novembre 2022
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Qu'est-ce que STDIN
    Bonjour à tous,

    Je m'interroge sur un paramètre que je trouve régulièrement dans certaines fonctions. Il s'agit de STDIN. Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fscanf(STDIN, "%d %d", $W, $H);
    fgets(STDIN);
    fscanf(STDIN, "%d %d", $x, $y);
    Je me demande ce que signifie ce STDIN et à quoi sert-il?

    Merci.
    Jonathan.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    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 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    C'est l'entrée standard (STandarD INput).
    Elle est souvent utilisée avec PHP CLI (mode ligne de commande), dans ton exemple pour lire des nombres.

    Doc : https://www.php.net/manual/fr/featur...io-streams.php

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Sans
    Inscrit en
    Novembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Novembre 2022
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse.

    Ici en l’occurrence, j'imagine qu'il existe un fichier texte quelque part, qu'une commande permet de la passer en STDIN et ensuite grâce à la fonction fscanf on va venir en lire le contenu?

    C'est possible ou pas?

    Je me demande comment passer des informations dans ce stdin. D'où viennent les informations qu'il contient?

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    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 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Oui c'est possible.

    Il y a plusieurs manières d'utiliser STDIN.

    Ex. avec ce script stdin.php :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    fscanf(STDIN, '%d%d', $x, $y);
    echo "x={$x}, y={$y}\r\n";

    En mode interactif, dans le terminal :

    Tu peux saisir des nombres au clavier, il te les rendra à l'affichage.

    Avec un pipe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo '123 234' | php stdin.php
    x=123, y=234
    Avec une redirection, fichier stdin.in :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ php stdin.php < stdin.in
    x=345, y=456

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 705
    Points : 43 785
    Points
    43 785
    Par défaut
    Sous Linux, tout est fichier. Tu as stdin et stdout qui sont des fichiers spéciaux, stdin fichier d'entrée, stdout fichier de sortie. Utiliser STDIN avec un site Internet n'a pas de sens. Par contre, tu peux comme indiqué utiliser php en ligne de commande.

    fscanf qui vient originellement du C permet de lire une chaine formatée depuis un fichier, et en l’occurrence avec le nom de fichier STDIN lire l'entrée standard, l'entrée standard étant en général le clavier, mais pouvant comme l'indique Seb venir de la sortie d'une autre commande dans un shell Linux.

Discussions similaires

  1. qu'est ce que l'instruction "round"?
    Par isa_21 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/03/2003, 10h37
  2. Qu'est ce que c'est : Le GateA20 ?
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 24/02/2003, 15h09
  3. Qu'est ce que le cache ?
    Par irrou dans le forum Assembleur
    Réponses: 4
    Dernier message: 24/11/2002, 23h28
  4. Qu'est-ce que c'est que Nessus, ça fait quoi exactement ?
    Par PeterT dans le forum Développement
    Réponses: 3
    Dernier message: 24/07/2002, 11h23
  5. Réponses: 3
    Dernier message: 19/07/2002, 15h01

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