zoukankan      html  css  js  c++  java
  • php的标准输入与输出是什么?

    php的标准输入与输出是什么?

    一、总结

    php的标准输入与输出(STDIN是一个文件句柄,等同于fopen("php://stdin", 'r'))

    1、STDIN是一个文件句柄,等同于fopen("php://stdin", 'r')

    二、php的标准输入与输出

    <?php
    // ask for input
    fwrite(STDOUT, "Enter your name: ");
    
    // get input
    $name = trim(fgets(STDIN)); 接收用户输入
    
    // write input back
    fwrite(STDOUT, "Hello, $name!");
    ?> 

    运行方法:
    1.运行cmd
    2.跳至php.exe所在目录
    3.敲入命令

    还是用脚本来说话:



    运行:php inouttest.php

    运行结果为:
    Enter your name: davy
    Hello, davy!

    其中:


    常量 说明
    STDIN 标准的输入设备
    STDOUT 标准的输出设备
    STDERR 标准的错误设备


    可以在PHP脚本里使用这三个常量,以接受用户的输入,或者显示处理和计算的结果。

    PHP处理过程如下:fwrite()函数首先会向标准的输出设备写一条消息,询问用户的姓名。然后它会把从标准输入设备获得的用户输入信息读取到一个PHP变量里,并它把合并成为一个字符串。然后就用fwrite()把这个字符串打印输出到标准的输出设备上

    另举两例:
     1 <?php
     2 while($str = fread(STDIN,1000)){
     3      echo "you print:".$str;
     4 }
     5 ?>
     6 
     7 
     8 
     9 <?php
    10 //PHP CLI中,有三个系统常量,分别是STDIN、STDOUT、STDERR,代表文件句柄。
    11 
    12 /**
    13  *@ 标准输入
    14  *@ php://stdin & STDIN
    15  *@ STDIN是一个文件句柄,等同于fopen("php://stdin", 'r')
    16 
    17  */
    18 $fh = fopen('php://stdin', 'r');
    19 echo "[php://stdin]请输入任意字符:";
    20 $str = fread($fh, 1000);
    21 echo "[php://stdin]你输入的是:".$str;
    22 fclose($fh);
    23 echo "[STDIN]请输入任意字符:";
    24 $str = fread(STDIN, 1000);
    25 echo "[STDIN]你输入的是:".$str;
    26 
    27 /**
    28  *@ 标准输出
    29  *@ php://stdout & STDOUT
    30  *@ STDOUT是一个文件句柄,等同于fopen("php://stdout", 'w')
    31  */
    32 $fh = fopen('php://stdout', 'w');
    33 fwrite($fh, "标准输出php://stdout/n");
    34 fclose($fh);
    35 fwrite(STDOUT, "标准输出STDOUT/n");
    36 
    37 /**
    38  *@ 标准错误,默认情况下会发送至用户终端
    39  *@ php://stderr & STDERR
    40  *@ STDERR是一个文件句柄,等同于fopen("php://stderr", 'w')
    41  */
    42 $fh = fopen('php://stderr', 'w');
    43 fwrite($fh, "标准错误php://stderr/n");
    44 fclose($fh);
    45 fwrite(STDERR, "标准错误STDERR/n");
     
  • 相关阅读:
    [杂题笔记]2021.08.18-2021.09.03,CF#741 Div.2&CF#736 Div.2&CF Global Round15&CF#739 Div3
    第一次博客作业
    《博弈论》
    迭代法-二分迭代求解低阶线性方程
    迭代法-牛顿迭代法
    logback扩展日志输出功能
    log4j2扩展日志输出功能
    c# clr创建mssql的存储过程、函数
    驰骋BPM,工作流
    Docker部署RocketMQ踩坑记录
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9099570.html
Copyright © 2011-2022 走看看