features-php-commandline-php-io-streams-2

  • Command line usage
  • Input/output streams

  • Input/output streams
  • Input/output streams

    Input/output streams

    The CLI SAPI defines a
    few constants for I/O streams to make programming for the command
    line a bit easier.

    CLI specific Constants
    Constant Description
    STDIN

    An already opened stream to stdin. This
    saves opening it with

    <?php
    $stdin 
    fopen('php://stdin''r');
    ?>

    If you want to read single line from stdin, you can use

    <?php
    $line 
    trim(fgets(STDIN)); // reads one line from STDIN
    fscanf(STDIN"%d\n"$number); // reads number from STDIN
    ?>
    STDOUT

    An already opened stream to stdout. This
    saves opening it with

    <?php
    $stdout 
    fopen('php://stdout''w');
    ?>
    STDERR

    An already opened stream to stderr. This
    saves opening it with

    <?php
    $stderr 
    fopen('php://stderr''w');
    ?>

    Given the above, you don’t need to open e.g. a
    stream for stderr yourself but simply use the constant
    instead of the stream resource:

    php -r 'fwrite(STDERR, "stderr\n");'
    

    You do not need to explicitly close these streams, as they are
    closed automatically by PHP when your script ends.

    Note:

    These constants are not available if reading the
    PHP script from stdin.