我在想这个逃逸程序。PHP手册说\e代表“逃逸”--嗯,我在谷歌上搜索了它,发现了ANSI逃逸序列,我不知道这个\e是否指它们。
维基百科:
ANSI转义序列是嵌入在文本中的字符,用于控制视频文本终端上的格式、颜色和其他输出选项。
但我看不出这个转义序列和PHP是如何交互的。我不知道那些帖子是不是都是对的。
有人能谈谈这个话题并举例说明吗?
发布于 2011-06-28 19:38:24
PHP不能只用于web服务器;PHP脚本可以从命令行运行,如下所示:
$ php foo.php如果您创建了一个用于从命令行运行的PHP脚本(例如,随CakePHP附带的cake命令),那么当您想在终端模拟器中执行颜色和格式设置时,\e可以派上用场。
您可以在此页上找到更多关于这些转义序列的信息。
发布于 2016-02-18 23:57:38
\e使用字符序列表示ASCII中的字符、0x1B (以及UTF-8和其他与ASCII兼容的编码)。用可打印字符表示非印刷字符 (在本例中是\和e )是很有帮助的,因为用标准键盘编写这样的字符并不容易(更不用说在屏幕上读取它们了)。这些序列通常被称为“转义序列”。
链接到的手册页面只是简单地说:“如果您正在编写正则表达式,并且希望与ESC字符匹配,则可以使用\e进行匹配。其他\...序列类似地表示难以直接输入的字符和字符集。
正如您所发现的,ESC有许多用途,其中包括用于修改命令行程序输出的ANSI转义序列,通常用于添加颜色,例如\e[...m,其中...是一个或多个选择图形渲染代码 (在该页面上搜索"SRG“)。这并不是PHP特有的;理解这些转义序列的不是执行程序,而是终端。在兼容终端中输出适当字节序列的任何程序(用任何语言编写)都会触发这种行为。
在Bash中可以轻松地看到这种行为,请尝试在您的终端中运行以下命令:
$ echo -e '\e[31mRED TEXT\e[m'
$ echo -e '\e[42mGREEN BACKGROUND\e[m'
$ echo -e '\e[5mBLINKING?\e[m'大多数终端都会将第一个命令的输出设置为红色,而第二个则是绿色背景。然而,许多终端故意不支持闪烁的文本,因为同样的原因,HTML <blink>标记通常不受支持--这很烦人:)
不用说,“逃逸序列”一词在许多不同的上下文中被使用,其含义略有不同。但一般说来,转义序列是一种特殊的字符序列,它不仅具有字符本身的特殊意义,还具有特定的意义。
发布于 2011-06-28 19:37:49
有很多逃跑的事。
\b:backspace
\n:新线路
\r:艰难的回归
\e:逃逸
等等..。
它们在输出时都会做不同的事情。
https://stackoverflow.com/questions/6512104
复制相似问题