Предоставленный код не будет работать под Windows, потому что PHP под windows что-то делает с командным окном. Я не уверен, что делает PHP, но я написал простую программу Freebasic с двумя строками:
cls
end
Затем я скомпилировал его и запустил в обычном окне командной строки. Он очистил экран без каких-либо проблем. Затем я сделал следующее в PHP:
<?php
echo "This is a test\n";
system( "cls.exe" );
exec( "cls.exe" );
passthru( "cls.exe" );
?>
Когда я запустил программу, она не сделала ничего, кроме строки «Это тест». Таким образом, в PHP происходит какое-то подавление, которое ищет и предотвращает возникновение любой escape-последовательности. Пока это не исправлено в PHP - вы никогда не сможете делать cls или использовать curses, ncurses или любую другую библиотеку. Что нужно сделать, это интегрировать что-то вроде оконных методов FreeBasic как некоторый класс (или, может быть, просто набор процедур на C), который откроет новое окно с помощью методологий языка THAT и использует их для создания текстового окна. Тогда все escape-последовательности будут работать. До тех пор - они не будут.
Что я нахожу странным в этом, так это то, что PHP изначально был написан на Perl, и Perl будет выполнять ncurses на Windows без каких-либо проблем. Perl также позволит всем escape-последовательностям работать. Таким образом, при компиляции Windows выполняется нечто, вызывающее эту проблему.