auto_prepend_file = "путь к классу.php"
Запускаем скрипты из командной строки >php test.php (к примеру)
Содержимое класса версии 1.0.2
<?php
/**
* Windows CLI Extended Class
*
* @version 1.0.2
* @author Mars
*/
date_default_timezone_set('Europe/Moscow');
ini_set('display_errors', 'stderr');
class cmd
{
/**
* статическая переменная кодировки по умолчанию
* @access private
* @static
*/
private static $charset = 'Windows-1251';
/**
* функция вывода текста на экран командной строки
* @param string $string текст для вывода на экран
*/
public static function write($string)
{
echo self::strtodos($string, self::$charset);
}
/**
* функция ввода текста с экрана командной строки
* @param string $arguments текст, выводимый перед запросом строки (prompt)
* @param bool $in отключает декодирование в рабочую кодировку
* @return string
*/
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));
}
/**
* функция ввода ответа Y или N с экрана командной строки
* @param string $arguments текст, выводимый перед запросом ответа (prompt)
* @return bool
*/
public static function readlnq($arguments)
{
$answers = array('y', 'Y', 'n', 'N', ''); $verity = array('y', 'Y', '');
do {$query = self::readln($arguments.' Y/N');} while (!in_array($query, $answers));
return (in_array($query, $verity));
}
/**
* функция конвертирования текста из рабочей кодировки в кодировку dos
* @param string $string строка в рабочей кодировке
* @param string $charset название рабочей кодировки
* @return string
*/
public static function strtodos($string, $charset='')
{
if (empty($charset)) $charset = self::$charset;
return iconv($charset, 'cp866', $string);
}
/**
* функция конвертирования текста из кодировки dos в рабочую кодировку
* @param string $string строка в кодировке dos
* @param string $charset название рабочей кодировки
* @return string
*/
public static function strfromdos($string, $charset='')
{
if (empty($charset)) $charset = self::$charset;
return iconv('cp866', $charset, $string);
}
/**
* функция смены текущей рабочей кодировки
* @param string $charset название рабочей кодировки
*/
public static function output($charset)
{
self::$charset = $charset;
}
/**
* функция исполнения команды и возврата результата в виде строки
* @param string $cmd текст команды
* @return string
*/
public static function shell($cmd)
{
return `$cmd`;
}
}
примеры решений
<?php
$name = cmd::readln('Введите ваше имя:');
cmd::write("Ваше имя - $name");