php read,PHP: Readline 函数 - Manual

Readline only reads the window size on startup or on SIGWINCH.  This means if the window is resized when not in a readline() call, the next call will have odd behavior due to confusion about the window size.

The work-around is to force Readline to re-read the window size by sending it SIGWINCH.  This is accomplished using the async interface, which installs the signal handler but returns control to PHP.

The following function is a drop-in replacement for readline(), but re-reads the window size every time:

function xreadline($prompt)

{

global $xreadline, $xreadline_line;

$code = '$GLOBALS["xreadline"] = false;' .

'$GLOBALS["xreadline_line"] = $line;' .

'readline_callback_handler_remove();';

$cb = create_function('$line', $code);

readline_callback_handler_install($prompt, $cb);

$signal = defined("SIGWINCH") ? SIGWINCH : 28;

posix_kill(posix_getpid(), $signal);

$xreadline = true;

while ($xreadline)

readline_callback_read_char();

return is_null($xreadline_line) ? false : $xreadline_line;

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值