3

我正在编写一个打印彩色线条的程序,我用它做的越多,我发现自己解决出现的换行问题就越多。

它是一种用 php 编写的终端,提示如下:

$return = readline("\033[44m\033[1;37m{$this->text}>>\033[0m ");

滚动浏览历史,非印刷字符对一切造成严重破坏。

如果我尝试添加转义

$return = readline("\[\033[44m\033[1;37m\]{$this->text}>>\[\033[0m\] ");

然后它会打印括号......即使我添加了双反斜杠。

\[\][timer]>>\[\] 

我对 echo -e 也有同样的看法,我真的不确定发生了什么。

最后,如果我修改 PS1 就可以了。

[mike@crest ~]$ export PS1="\[\033[44m\033[1;37m\][timer]>>\[\033[0m\] "
[timer]>>

我在这里想念什么?

编辑:着色/显示不是问题。问题是,当不带转义符打印不可见字符时,bash 会出现换行问题......当我添加转义符时,它们在除 PS1 之外的所有情况下都以纯文本形式打印,我不确定有什么区别,如何让它在 PHP 中工作。

4

1 回答 1

0

php 1.php

[定时器]>>

<?php

$return = readline("\033[44m\033[1;37m[TIMER]>>\033[0m ");

?>

这是添加的对话框示例

dialog --title "Welcome" --msgbox "\nMY TEST DIALOG \n\nPress <Enter> to continue or <Esc> to cancel." 10 50
于 2012-10-30T10:54:54.767 回答