PHP标准输入?

2021-12-29 00:00:00 file-io stdin php

我知道 PHP 通常用于 Web 开发,其中 没有标准输入,但 PHP 声称可用作通用脚本语言,如果您遵循它是基于 Web 的时髦公约.我知道 PHP 使用 printecho 打印到 stdout(或任何你想调用的东西),这很简单,但我我想知道 PHP 脚本如何从 stdin 获取输入(特别是使用 fgetc(),但任何输入函数都可以),或者这是否可能?

I know PHP is usually used for web development, where there is no standard input, but PHP claims to be usable as a general-purpose scripting language, if you do follow it's funky web-based conventions. I know that PHP prints to stdout (or whatever you want to call it) with print and echo, which is simple enough, but I'm wondering how a PHP script might get input from stdin (specifically with fgetc(), but any input function is good), or is this even possible?

推荐答案

可以通过创建 php://stdin 的文件句柄来读取 stdin 和然后使用 fgets() 从中读取一行(或者,正如您已经说过的,fgetc() 用于单个字符):

It is possible to read the stdin by creating a file handle to php://stdin and then read from it with fgets() for a line for example (or, as you already stated, fgetc() for a single character):

<?php
$f = fopen( 'php://stdin', 'r' );

while( $line = fgets( $f ) ) {
  echo $line;
}

fclose( $f );
?>

相关文章