@JohnnyParazit

Не получается с кодом php для бота Telegram?

Всем привет! Учу бота говорить! Есть моменты которые не получаются.
Вот кусок кода, работает идеально:
$hello = 'привет';
  $bot_hello      = strripos($message, $hello);

if ($bot_hello === false) {
	} else {
    sendMsg($group_id, 'Привет, '. $first_name . '!' );
}


Первый момент который не получается, это регистр букв, как его победить? Если боту написать "Привет", то он меня уже не поймет! Пробовал так:
function strtolower_ru($message) {

$alfavitlover = array('ё','й','ц','у','к','е','н','г', 'ш','щ','з','х','ъ','ф','ы','в', 'а','п','р','о','л','д','ж','э', 'я','ч','с','м','и','т','ь','б','ю');

$alfavitupper = array('Ё','Й','Ц','У','К','Е','Н','Г', 'Ш','Щ','З','Х','Ъ','Ф','Ы','В', 'А','П','Р','О','Л','Д','Ж','Э', 'Я','Ч','С','М','И','Т','Ь','Б','Ю');

return str_replace($alfavitupper,$alfavitlover,strtolower($message));

}

Но не выходит! Второй момент, это массивы. Как сделать так чтобы было несколько вариантов сообщений на которые он реагирует, к примеру:
$hello = array();
  $hello[] = 'привет';
  $hello[] = 'хай';
  $hello[] = 'здравствуйте';
  $hello[] = 'ку';

И рандомный ответ из массива бота!
  • Вопрос задан
  • 387 просмотров
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега PHP
Web developer
Комментировать
@MadridianFox
Web-программист, многостаночник
Если вы хотите сделать по настоящему разговаривающего бота, то простым кодированием условий тут не обойтись. Необходимо использовать методы машинного обучения, которые в большинстве своём подразумевают преобразование текста в более машинно-понятный язык, например, N-граммы или тот же soundex..

Если же это обычный бот - то почему бы не делать как все - команды на латинице со слешем в начале.

По поводу тех проблем с которыми вы столкнулись: с кирилицей надо работать используя mb_*** функции (можно, конечно, mb_func_overload включить и не париться, но лучше явно использовать мультибайтовые функции).
Выбор случайного элемента из массива - ну блин, есть функция array_rand(), но и без неё можно было догадаться взять случайное число от нуля и до размера массива и использовать в качестве ключа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы