Примерное значение в case

131
03 сентября 2019, 09:40

Я получаю 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;
}

Надеюсь, понятно объяснил, что искал.

Answer 1

Switch имхо, не для тех целей используется. Тут лучше подойдёт if-else.

if (strpos($bot->command, 'привет') !== false
    || strpos($bot->command, 'здравствуйте') !== false
    || **другие варианты**): {
    ...
}
else if (strpos($bot->command, '**другое слово**') !== false): {
    ...
}
READ ALSO
Как реализовать такое условие на PHP

Как реализовать такое условие на PHP

Как написать условие которое будет это проверятьНапример если за месяц что-то добавилось в БД то выполнить то-то, например вывести Hello World?

113
Роутинг для стилей и скриптов

Роутинг для стилей и скриптов

Вопрос следующий: Как сделать роутинг для css / js?

123
Кодировка файла, получаемого php-скриптом

Кодировка файла, получаемого php-скриптом

Вопрос по поводу функций, связанных с кодировкойПолучаю данные curl()-ом с сайта, кодировка на котором установлена windows-1251

88
Двойной пост запрос или как это сделали?

Двойной пост запрос или как это сделали?

Всём приветЕсть сайт на котором хранятся виртуальные финансы для сайта и система зачисления, вывода, перевода между пользователями и т

116