gpt4 book ai didi

php - xterm 中的换行问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:54 25 4
gpt4 key购买 nike

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

这是一种用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 中工作。

最佳答案

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

关于php - xterm 中的换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13131162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com