【问题标题】:Carriage return PHP multi line回车 PHP 多行
【发布时间】:2018-11-18 15:11:42
【问题描述】:

我想在命令行中使用 php 进行多行回车。 这可能吗?

我已经知道如何用一行print("\r") 来实现它,但它想知道如何在多行上做到这一点。

打印出来的数据应该是这样的:

$output = "
 Total time passed: 34, \n
 Total tests: 14/523 
";
print($output . "\r");

它适用于单行,因此每次在循环中打印时都不会添加新行。 当我将它与 PHP_EOL 或 \n 一起使用时,我一直在获取新行。我只想在更新时显示两行。

【问题讨论】:

  • 您基本上希望它用新输出覆盖旧输出。所以最终结果是输出中的行看起来好像正在更新而不是重复。

标签: php command-line


【解决方案1】:

您正在寻找PHP_EOL,每个回车对应一个。请参阅此处:https://stackoverflow.com/a/128564/2429318 以获得友好的描述。

它是 PHP 中的 Core Predefined Constants 之一

PHP_EOL(字符串) 此平台的正确“行尾”符号。自 PHP 5.0.2 起可用

【讨论】:

  • 让我在问题中重新提出我想要的结果
  • 啊,我看到你编辑了,@artem-ilchenko 已经做出了相应的回答,很高兴你被排序了!
【解决方案2】:

你可以这样写:

print("\n\n\n\n\n");

但是如果你想打印动态数量的新行怎么办:)

试试这个功能:

function new_lines($n) {
    for($i = 0; $i < $n; $i++) { echo PHP_EOL; }
}

这样称呼它:

//print 100 new lines
new_lines(100); 

【讨论】:

    【解决方案3】:

    您可以使用 ANSI 转义来执行此操作 char[F

    例如:

    for ($i = 1; $i < 5; $i++) {
        $prevLineChar = "\e[F";
        sleep(1);
        echo "$i\nof 5\n" . $prevLineChar . $prevLineChar;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多