Как это реализовать?
'Тики, переверни (предложение)' => utf8_strevv("предложение")
Нужно как-нибудь взять предложение после слова "переверни" и внести его в utf8_strrev()
Код:
secret, $secretKey) !== 0 && strcmp($data->type, 'confirmation') !== 0)
return;
switch ($data->type) {
case 'confirmation':
echo $confirmationToken;
break;
case 'message_new':
$user_id = $data->object->from_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&access_token=$token&v=5.80"));
$user_name = $user_info->response[0]->first_name;
$message = $data->object->text;
$url = 'https://vk.com/foaf.php?id='.$user_id;
$file = file_get_contents($url);
preg_match_all('#
(Пример: Тики, хелп)
Команды для обычных:
🌕Тики, хелп
🌕Тики, привет
🌕Тики, как дела?
🌕Тики, что делаешь?
🌕Тики, какой у меня ID?
🌕Тики, какая сегодня дата?
🌕Тики, сколько время?
🌕Тики, монетка
🌕Тики, создатель
🌕Тики, рандом
🌕Тики, дата регистрации
🌕Тики, админы",
'Тики, привет' => "🖤Привет {$user_name}!",
'Тики, как дела?' => "🖤Нормально, {$user_name}, а у тебя как?",
'Тики, что делаешь?' => "🖤С тобой переписываюсь, и мне очень весело... А ты?",
'Тики, какой у меня ID?' => "🖤Твой ID: {$user_id}, и он самый крутой!",
'Тики, какая сегодня дата?' => "🖤Дата: ".date("d.m.Y"),
'Тики, сколько время?' => "🖤Время: ".date("H:i:s"),
'Тики, монетка' => "🖤Выпадает: {$random_word}",
'Тики, создатель' => "🖤Создатель: [id406404515|Константин]",
'Тики, рандом' => "🖤Рандомное число: ".rand(1, 100),
'Тики, дата регистрации' => "🖤Дата регистрации ВКонтакте: ".$dt->format('d.m.Y')." ".$dt->format('H:i:s'),
'Тики, админы' => "🖤[id406404515|Константин]",
'Тики, переверни' =>
];
foreach($messages_array as $k => $v) {
if ($message == $k) {
$otvet = $v;
}
}
$request_params = array(
'message' => $otvet,
'user_id' => $user_id,
'access_token' => $token,
'v' => '5.80'
);
$get_params = http_build_query($request_params);
file_get_contents('https://api.vk.com/method/messages.send?' . $get_params);
echo('ok');
break;
case 'group_join':
$user_id = $data->object->user_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&access_token=$token&v=5.80"));
$user_name = $user_info->response[0]->first_name;
$request_params1 = array(
'message' => "Привет {$user_name}! Это второй бот Тики. С этим ботом вы можете пообщаться, задавать ему вопросы, спрашивать и многое другое! Кстати, этот бот умеет переворачивать текст! Чтобы узнать команды напиши «Тики, хелп».",
'user_id' => $user_id,
'access_token' => $token,
'v' => '5.80'
);
$get_params1 = http_build_query($request_params1);
file_get_contents('https://api.vk.com/method/messages.send?' . $get_params1);
echo('ok');
break;
case 'group_leave':
$user_id = $data->object->user_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&access_token=$token&v=5.80"));
$user_name = $user_info->response[0]->first_name;
$request_params2 = array(
'message' => "Пока {$user_name}! Мы увидемся ещё? Я по тебе буду скучать(((",
'user_id' => $user_id,
'access_token' => $token,
'v' => '5.80'
);
$get_params2 = http_build_query($request_params2);
file_get_contents('https://api.vk.com/method/messages.send?' . $get_params2);
echo('ok');
break;
return false;
}
?>
Ответ
Вся ваша реализация далеко не идеальна, рекомендую избавляться от хранения команда - ответ в массиве.
Но если для вас это удобно, этот вариант-велосипед должен подойти вам:
Короткий идентичный массив команд:
$messages_array = [
'Тики, привет' => 'Привет',
'Тики, переверни' => 'Введите текст!',
'Тики, как дела?' => 'Хорошо'
];
Сообщение, которое приходит боту:
$message = 'Тики, переверни предложение';
Проход циклом по командам, если в $message есть начало команды, которая содержится в ключе массива $messages_array, то выполняются условия выполнения функции utf8_strrev
foreach ($messages_array as $k => $v)
{
if ($message == $k)
$otvet = $v;
elseif (preg_match("/$k/", $message) && preg_match("~$k\s(.*)~", $message, $match))
$otvet = (!empty($match[1])) ? utf8_strrev($match[1]) : $v;
}
Далее используем $otvet по назначению для отправки пользователю.
Комментариев нет:
Отправить комментарий