Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
|
Это плагин icq бота SteelBot. Помогите пожалуйста. Что нужно дописать чтобы все ответы на вопросы записывались файл. Например: Вопрос: Сколько вам лет? Ответ: 1. 12-15. В файл должно записаться Сколько вам лет? 1. 12-15 .
PHP:
скопировать код в буфер обмена
<?PHP class plg_test { static $curq = array(), // текущий вопрос (uin => question_id)$q = array(array("Сколько вам лет?", "12-15", "15-18", "18", "num"), // вопросы array (Вопрос, варианты ответа, тип) array("Место учебы", "Школа", "Вуз", "num"), array("Дата рождения в формате чч\мм\гггг", "date") ); function get_next() { $uin = SteelBot::GetSender(); $text = SteelBot::GetMsgText(); $curr = intval(self::$curq[$uin]); if ($text == 'help') return; if ($text == 'тест') { SteelBot ::msg(self::GetText($curr));SteelBot::DropMsg(); return; } switch (self::$q[$curr][count(self::$q[$curr])-1 ]) { case 'num': // ответом является номер варианта ответа if ($answ > (count(self::$q[$curr])-2 ) || $answ < 1 ) { SteelBot ::msg(self::GetText($curr));SteelBot::DropMsg(); return; } /* тут мы записываем данные в файл или еще че нить делаем */ SteelBot::DropMsg(); break; case 'date': if (!preg_match_all("/(\d{2})\\\(\d{2})\\\(\d{4})/iU", $text, $out)) { SteelBot ::msg(self::GetText($curr));SteelBot::DropMsg(); return; } $d = $out[1][0]; // число $m = $out[1][1]; // месяц $y = $out[1][2]; // год /* тут мы записываем данные в файл или еще че нить делаем */ SteelBot::DropMsg(); break; default: SteelBot::DropMsg(); return; } self::$curq[$uin]++; $curr++; if ($curr == count(self::$q)) SteelBot::Msg("Вы прошли тест!"); else SteelBot ::Msg(self::GetText($curr));return; } $text = self::$q[$num][0]; $q = self::$q[$num]; switch ($q[count($q)-1 ]) { case 'num': $text .= "\nВыберите вариант ответа:"; for ($i = 1; $i < (count($q)-1 ); $i++) $text .= "\n$i. " . $q[$i]; return $text; case 'date': $text .= "\nВведите ответ в формате чч\мм\гггг"; return $text; default: return ""; } } } SteelBot ::RegisterEventHandler(EVENT_MSG_RECIEVED , array ('plg_test', 'get_next'));SteelBot ::RegisterCmd("тест",array("plg_test", "get_next"), 1,"тест - пройти тест");
(Добавление)
$fp = fopen("otvety.txt", "a"); // Открываем файл в режиме записи
$mytext = "что тут писать?"; // Что здесь нужно написать чтобы в файл записался номер ответа+ответ в текстовом виде. Например: Вопрос: Сколько вам лет? Ответ: 1. Записаться дожно: Сколько вам лет? 1.12-15
$test = fwrite($fp, $mytext); // Запись в файл
fclose($fp); //Закрытие файла
Или как то по другому нужно, что я только не подставлял туда...ничего не получается подскажите пожалуйста. Может как то по другому нужно?
|