ФорумПрограммированиеPHP для идиотов → расширение для удобной работы с CLI в windows 7

расширение для удобной работы с CLI в windows 7

  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 24 декабря 2010 г. 14:49

    решил написать себе небольшой помощник, php использую очень активно, даже для всяких порой мелочей (работа с файлами, массовое переименование и тд)

    Пока эта хуета выглядит так (подключается через 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");


    я считаю очень полезно, вот еще пример
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 24 декабря 2010 г. 14:58, спустя 8 минут 16 секунд

    че хотелось бы еще сделать - возможность изменения параметров окна командной строки
    в powershell такое возможно если отправить в STDOUT "<color 5" к примеру, в простой cmd такое не прокатит поэтому обидно

    еще хочется реализовать немного примитивных алгоритмов для решения повседневных задач (к примеру поиск текста в файлах или массовая смена кодировки и тд)
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 24 декабря 2010 г. 18:43, спустя 3 часа 45 минут 9 секунд

    зачет
    ιιlllιlllι унц-унц
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 декабря 2010 г. 3:35, спустя 8 часов 52 минуты 42 секунды

    STDOUT "<color 5" к примеру

    это плохое решение. Лучше через ansicon
    Спустя 42 сек.
    ансикон + анси sequences = Ъ
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2010 г. 5:37, спустя 2 часа 1 минуту 6 секунд

    покажи что ты имеешь ввиду, это класс такой или доп. прога какая-то?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 декабря 2010 г. 5:38, спустя 59 секунд

    ansicon - прога для венды, что б консоль в ней поддерживала http://en.wikipedia.org/wiki/ANSI_escape_code
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2010 г. 5:43, спустя 5 минут 4 секунды

    кстати я в гугле забанен, говорю на всякий случай чтоб не посылали
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2010 г. 5:45, спустя 12 секунд

    она как дополнение ставится или как? или это отдельная консоль?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 декабря 2010 г. 5:46, спустя 1 минуту 4 секунды

    Mars, очисти куки гугловские. Или ищи в Яндексе

    просто прога. В обыкновенной консоли запускаешь ее (или в автозагрузку хуяришь) и после этого ansi escape codes нормально хаваются
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2010 г. 5:49, спустя 3 минуты 25 секунд


    Mars, очисти куки гугловские. Или ищи в Яндексе

    просто прога. В обыкновенной консоли запускаешь ее (или в автозагрузку хуяришь) и после этого ansi escape codes нормально хаваются


    да ну хуета ящитаю, дополнительные проги не вариант ибо нахуй не нужно, и в яндексе я тоже забанен, и в яхуу, и в бингоо
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 декабря 2010 г. 5:51, спустя 1 минуту 38 секунд

    сам ты хуета. Прога несколько киллобайт весит. Зато ты приобретаешь какую-никакую совместимость с линупсовой консолью. Там эти анси эскейп кодес везде
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2010 г. 5:52, спустя 1 минуту 14 секунд

    а не проще ли баш просто запустить?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 декабря 2010 г. 5:55, спустя 2 минуты 36 секунд

    очень может быть, cygwin какой-нить. И в итоге опять-таки не стоит заморачиваться с

    <color 5"
  • Mars

    Сообщения: 304 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2010 г. 5:57, спустя 2 минуты 43 секунды


    очень может быть, cygwin какой-нить. И в итоге опять-таки не стоит заморачиваться с

    <color 5"



    по идее винда держит линуксовые приложения, без всякой доп хуеты
    Спустя 113 сек.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!