Удалить сообщение с указанием c слов на телеграмме - PullRequest
1 голос
/ 01 мая 2020

Я написал бота для удаления некоторых слов из группы телеграмм.

function filter_messages() {
    global $telegram;

    $bad_words = [
        'hello',
        'hi'
    ];

    $all_words = end( explode( ' ', $telegram->Text() ) );

    if ( in_array( $all_words, $bad_words ) ) {
        deletMessage();
    }

}

это работает, когда пользователь отправляет сообщение типа "привет". Робот удаляет сообщение. но когда он посылает "привет, ребята", робот не удаляет сообщение.

Ответы [ 2 ]

0 голосов
/ 01 мая 2020
function filter_messages() {
    global $telegram;

    $bad_words = [
        'hello',
        'hi'
    ];

    //Make the array $badword to a (commaseparated) string
    $badwords_to_string = implode(",", $bad_words);

    //And then check if the any of the bad words in the telegramText exists
    //based on that $telegram->Text() is a string
    if (strpos($badwords_to_string, $telegram->Text()) !== false) {
        deletMessage();
    }

}
0 голосов
/ 01 мая 2020

Я использовал функцию strpos ().

if(strpos($all_words,$bad_words)!==false){
    deletMessage();
}
...