【问题标题】:read multiple lines using STDIN in PHP在 PHP 中使用 STDIN 读取多行
【发布时间】:2020-07-28 16:07:39
【问题描述】:

我遇到了一个需要使用 PHP 解决的问题。

我有一个如下所示的多行输入:

a,b,c,d
a=10 tools
b=50 subtools
c=80 othertools

我想使用标准输入读取输入,但我只能读取第一行。 使用fscanf(STDIN, "%s\n", $name);

如何读取多个输入行并将它们保存到列表中?我想用逗号作为第一行的分隔符,用空格作为其余的分隔符。

【问题讨论】:

  • 您是否尝试过使用超过 1 个 fscanf 调用?
  • 是的,我有,但不起作用。如果我第二次使用另一个变量使用 fscanf,则只读取第一个元素。即,一个
  • 1.显示您的代码。 2. fscanf() 将需要一个比%s 更健壮的模式。 3. 如果你只想要线条,那么只需使用fgets()
  • 只有 4 行?

标签: php


【解决方案1】:

使用fgets 你可以做到

$c = 0;
do {
    $f = fgets(STDIN);
    echo "line: $f";
    if ( $c == 0) {
        echo 'its a a,b,c,d type line' . PHP_EOL;
    } else {
        echo 'its a a=10 tools' . PHP_EOL;
    }
    $c++;
   
} while ($c < 5);
echo 'END';

或者

$c = 0;
while ($f = fgets(STDIN) !== FALSE and $c<4) {
    echo "line: $f";
    if ( $c == 0) {
        echo 'its a a,b,c,d type line' . PHP_EOL;
    } else {
        echo 'its a a=10 tools' . PHP_EOL;
    }
    $c++;   
}
echo 'END';

【讨论】:

    猜你喜欢
    • 2016-06-05
    • 1970-01-01
    • 2016-11-28
    • 2015-10-27
    • 2012-04-09
    • 2012-08-11
    • 1970-01-01
    • 2018-06-04
    • 2011-08-15
    相关资源
    最近更新 更多