Я получаю VK сообщения, в которых содержатся команды. Например, в VK пишу боту "Привет", он по Switch отвечает на это команду "Что тебе здесь нужно?".
Если я напишу "Привет!", то ответа я уже не получаю. Как правильно написать код так, чтобы он принимал за команду сообщение, которое содержит в себе определенное слово или словосочетание? ЧТобы, например, на "Привет!" был ответ как на "Привет" (потому что основная часть текста есть).
Записаны команды так:
switch ($bot->command) {
case 'привет!':
case 'здравствуйте!':
$bot->message
->text('Здравствуйте! Я всего лишь Бот, но постараюсь Вас понять.')
// ->setKeyboard($defaultKeyboard)
->send();
break;
case 'clickbutton':
$bot->message
->keyboard()
->row()
->button('Главное меню', 'primary', ['command' => 'start'])
->one_time() //false by default
->text('Вызвана команда "clickbutton" с параметром "'.$bot->payload['parametr'].'"')
->send();
break;
}
Надеюсь, понятно объяснил, что искал.
Switch имхо, не для тех целей используется. Тут лучше подойдёт if-else.
if (strpos($bot->command, 'привет') !== false
|| strpos($bot->command, 'здравствуйте') !== false
|| **другие варианты**): {
...
}
else if (strpos($bot->command, '**другое слово**') !== false): {
...
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости