ncurses_getmaxyx

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

ncurses_getmaxyx — Returns the size of a window

Description

voidncurses_getmaxyx
( resource$window
, int&$y
, int&$x
)

Warning

This function is
EXPERIMENTAL. The behaviour of this function, its name, and
surrounding documentation may change without notice in a future release of PHP.
This function should be used at your own risk.

Gets the horizontal and vertical size of the given
window into the given variables.

Variables must be passed as reference, so they are updated when the user
changes the terminal size.

Parameters

window

The measured window

y

This will be set to the window height

x

This will be set to the window width

Return Values

User Contributed Notes 2 notes

TIP 1: If you want to know the size of the main (default) ncurses screen, you can use the defined constant STDSCReg. 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.

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 );