ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmaxyxウィンドウの大きさを返す

説明

ncurses_getmaxyx ( resource $window , int &$y , int &$x ) : void
警告

この関数は、 実験的 なものです。この関数の動作・ 名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 この関数は自己責任で使用してください。

指定したウィンドウ window の水平方向・垂直方向の大きさを取得します。

変数は参照渡しとする必要があり、 ユーザーが端末の大きさを変更した際にこの変数が更新されます。

パラメータ

window

調べるウィンドウ。

y

ウィンドウの高さが設定されます。

x

ウィンドウの幅が設定されます。

返り値

値を返しません。

add a note add a note

User Contributed Notes 2 notes

up
1
vic at lfs dot net
16 years ago
TIP 1: If you want to know the size of the main (default) ncurses screen, you can use the defined constant STDSCR
eg. ncurses_getmaxyx (STDSCR, $Height, $Width);
No need to create a window, get its size and delete it again (not sure if this works on php versions < 5 though).

TIP 2 : If you are creating a PHP console application and want to support terminal resizing and if you find that the ncurses screen doesn't actually resize when you resize your terminal (which was the case for me (on FreeBSD 5.3 at least)) you should end the current ncurses session and restart it again. Very easy to do this if you create your own ncurses class with a nice con- and destructor.
up
-1
superzouz at hotmail dot com
17 years ago
After some headscratching as to why my script was not detecting the terminal being resized... i discovered that the function would not report the new size of the terminal until the window is refreshed.
So this is the code that I am using to get the size of the screen:

$fullscreen = ncurses_newwin ( 0, 0, 0, 0);

// everytime you want to find out the size of the screen, write the following 2 lines:
ncurses_wrefresh($fullscreen);
ncurses_getmaxyx ($fullscreen, $y, $x );
To Top