Пока эта хуета выглядит так (подключается через php.ini, поэтому в самих скриптах никаких реквиредов писать не придется)
естественно нихуя ничего не документировано ибо нихуя еще ничего не дописано, вот так это выглядит на данный момент
<?php
/************************
* ———————-
* Windows CLI Extended
* AHAHAHAHAHA…
* by Mars
* ———————-
************************/
date_default_timezone_set('Europe/Moscow');
ini_set('display_errors', 'stderr');
class cmd
{
// статическая переменная кодировки по умолчанию
public static $charset = 'Windows-1251';
// функция вывода текста на экран командной строки
public static function write($string)
{
echo self::strtodos($string, self::$charset);
}
// функция ввода текста с экрана командной строки, $in отключает декодирование в рабочую кодировку
public static function readln($arguments, $in=false)
{
fwrite(STDOUT, self::strtodos($arguments.chr(32), self::$charset));
return (!$in) ? self::strfromdos(trim(fgets(STDIN)), self::$charset) : trim(fgets(STDIN));
}
// функция конвертирования текста из рабочей кодировки в кодировку dos
public static function strtodos($string, $charset='')
{
if (empty($charset)) $charset = self::$charset;
return iconv($charset, 'cp866', $string);
}
// функция конвертирования текста из кодировки dos в рабочую кодировку
public static function strfromdos($string, $charset='')
{
if (empty($charset)) $charset = self::$charset;
return iconv('cp866', $charset, $string);
}
// функция смены текущей рабочей кодировки
public static function output($charset)
{
self::$charset = $charset;
}
// функция исполнения команды и возврата результата в виде строки
public static function shell($cmd)
{
return `$cmd`;
}
}
использование примерно такое
<?php
$name = cmd::readln('Введите ваше имя:');
cmd::write("Ваше имя - $name");
я считаю очень полезно, вот еще пример