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()把这个字符串打印输出到标准的输出设备上

另举两例:

 <?php
while($str = fread(STDIN,1000)){
echo "you print:".$str;
}
?> <?php
//PHP CLI中,有三个系统常量,分别是STDIN、STDOUT、STDERR,代表文件句柄。 /**
*@ 标准输入
*@ php://stdin & STDIN
*@ STDIN是一个文件句柄,等同于fopen("php://stdin", 'r') */
$fh = fopen('php://stdin', 'r');
echo "[php://stdin]请输入任意字符:";
$str = fread($fh, 1000);
echo "[php://stdin]你输入的是:".$str;
fclose($fh);
echo "[STDIN]请输入任意字符:";
$str = fread(STDIN, 1000);
echo "[STDIN]你输入的是:".$str; /**
*@ 标准输出
*@ php://stdout & STDOUT
*@ STDOUT是一个文件句柄,等同于fopen("php://stdout", 'w')
*/
$fh = fopen('php://stdout', 'w');
fwrite($fh, "标准输出php://stdout/n");
fclose($fh);
fwrite(STDOUT, "标准输出STDOUT/n"); /**
*@ 标准错误,默认情况下会发送至用户终端
*@ php://stderr & STDERR
*@ STDERR是一个文件句柄,等同于fopen("php://stderr", 'w')
*/
$fh = fopen('php://stderr', 'w');
fwrite($fh, "标准错误php://stderr/n");
fclose($fh);
fwrite(STDERR, "标准错误STDERR/n");
 

php的标准输入与输出是什么?的更多相关文章

  1. Linux shell的标准输入、输出和错误

    编译文件时,若编译过程时间长,可以将  标准错误  重定向  输出到一个文件中   2 > 1.txt         也可以通过管道  重定向 到 标准输出    2 > &1 ...

  2. Linux标准输入、输出和错误和文件重定向(转) --- good

    标准输入.输出和错误 当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名.下面就是这些文 ...

  3. 编程语言的分类及其优缺点,Python标准输入与输出

    一. 编程语言分类 1.机器语言 以0,1的组合作为指令集,用二进制指令来编写程序: 优点:执行效率高 缺点:开发效率低 2.汇编语言 用英文标签代替二进制指令集来编写程序,比机器语言稍微高级,但本质 ...

  4. Linux标准输入、输出和错误和文件重定向 专题

    当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名. 下面就是这些文件描述符及它们通常所 ...

  5. K8S学习笔记之使用Fluent-bit将容器标准输入和输出的日志发送到Kafka

    0x00 概述 K8S内部署微服务后,对应的日志方案是不落地方案,即微服务的日志不挂在到本地数据卷,所有的微服务日志都采用标准输入和输出的方式(stdin/stdout/stderr)存放到管道内,容 ...

  6. 【C++札记】标准输入与输出

    概述 C语言中使用函数scanf和printf作为标准输入和输出,在C++中引入了类cin和cout进行标准输入和输出,所需头文件为<iostream>,命名空间是std.这里所说的标准输 ...

  7. python调用外部子进程,通过管道实现异步标准输入和输出的交互

    我们通常会遇到这样的需求:通过C++或其他较底层的语言实现了一个复杂的功能模块,需要搭建一个基于Web的Demo,方法查询数据.由于Python语言的强大和简洁,其用来搭建Demo非常合适,Flask ...

  8. C语言学习007:重定向标准输入和输出

    先来完成一个将输入数据转换成json格式输出的小任务 #include <stdio.h> int main(){ float latitude; float longtitude; ]; ...

  9. shell 中的>文件重定向符 和 标准输入、输出、错误以及 2&1 的含义*

    http://www.cnblogs.com/chenmh/p/5382044.html 问:其中 的2>&1是怎么回事? . test.sh > test.log 2>&a ...

随机推荐

  1. 【Unity3D自学记录】鼠标移动三维物体

    创建一个脚本.例如以下: using UnityEngine; using System.Collections; public class OnMouse : MonoBehaviour { IEn ...

  2. vue .sync 修饰符和自定义v-model的使用

    VUE 是单向数据流 当我们需要对一个 prop 进行"双向绑定"时 vue 修饰符.sync 子组件:this.$emit('update:visible', visible), ...

  3. 在CentOS7 开发与部署 asp.net core app笔记

    原文:在CentOS7 开发与部署 asp.net core app笔记 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lihongzhai/art ...

  4. Jquery+Ajax+Bootstrap Paginator实现分页的拼接

    效果图如下 jsp页面引入bootstrap样式,jquery和bootstrap-paginator.js <link type="text/css" rel=" ...

  5. ZOJ 1586 QS Network MST prim水题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=586 题目大意: QS是一种生物,要完成通信,需要设备,每个QS需要的设备的价格 ...

  6. Thread Safety in Java(java中的线程安全)

    Thread Safety in Java is a very important topic. Java provide multi-threaded environment support usi ...

  7. jQuery笔记---选择器

    查找API,jQuery选择器,定位标签 1.基本选择器 id定位标签 class属性定位标签 标签名定位标签 2.举例 <html> <head> <meta http ...

  8. Android 利用an框架快速实现夜间模式的两种套路

    作者:Bgwan链接:https://zhuanlan.zhihu.com/p/22520818来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 网上看到过大多实现夜间模 ...

  9. js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么

    js课程 3-10  js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...

  10. 34、uevent机制说明

    class_device_create(4.3.2内核是device_create->device_create_vargs->device_register->device_add ...