gpt4 book ai didi

PHP - 如何读取 ANSI 转义码 CSI 6n

转载 作者:行者123 更新时间:2023-12-05 07:48:31 26 4
gpt4 key购买 nike

如何使用 PHP 读取 ANSI 转义码 CSI 6n 的结果?

(DSR – 设备状态报告:https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes)

<?php
fwrite(STDOUT, "\033[6n");
$code = fread(STDIN,1);
die($code);

此代码将执行 CSI 6n,但我无法捕获响应,它总是会在 php 退出时打印出来。

最佳答案

您必须为读取无缓冲输入做一些准备。这是一个例子:

<?php
$term = trim(`stty -g`);
system("stty -icanon -echo");
fwrite(STDOUT, "\033[6n");
$code = trim (fread(STDIN,100) );
system("stty '" . $term . "'");
if ( sscanf($code, "\033[%d;%dR", $row, $col) == 2 ) {
printf ("position %d,%d\n", $row, $col );
} elseif ( strlen ($code ) > 0 ) {
printf ("unexpected %d-byte reply\n", strlen ($code ));
}
?>

关于PHP - 如何读取 ANSI 转义码 CSI 6n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38481680/

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