echo无法正常数据的奇怪现象

zhuxiaoyu

最近在看wm源码,发现了一个奇怪的现象
parseCommand方法中有一个调用

$mode = '';
if ($command === 'start') {
    if ($command2 === '-d' || static::$daemonize) {
        $mode = 'in DAEMON mode';
    } else {
        $mode = 'in DEBUG mode';
    }
}
static::log("Workerman $command $mode");

// Get master process PID.
$master_pid      = \is_file(static::$pidFile) ? \file_get_contents(static::$pidFile) : 0;

static::log之前的echo都可以正常输出到终端,在static::log之后的echo都无法正常输出,比如
echo 123213;
static::log("Workerman $command $mode");这个echo是无法输出的,但是
echo "123213\n";
static::log("Workerman $command $mode");
这个echo又能正常输出了
 
 
源码我看了一遍,没有发现什么问题,不知道是什么原因造成的,用的是linux,非守护进程模式调试

2807 1 0
1个回答

phpcreeper

源码中有这么一行: $line = "\033[1A\n\033[K"; 正是此行终端ANSI控制码引起的:033[1A:代表把光标向上移动1行\033[K:代表清空从光标位置到当前行末的内容。所以要正常的echo,行末加上换行符。

  • 暂无评论
年代过于久远,无法发表回答
×
🔝