@rusgayfer

Как сделать, чтобы чат бот отвечал без раницы с большой буквы сообщение или нет?

Вот код

<?php
$confirmation_token = '';
$token = '';
$data = json_decode(file_get_contents('php://input'));
switch ($data->type){
case 'confirmation':
echo $confirmation_token;
break;
case 'message_new':
$user_id = $data->object->user_id;
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0"));
$user_name = $user_info->response[0]->first_name;
$message = $data->object->body;
$messages_array = [
'Привет бот' => "Привет, {$user_name}!",
'как дела' => "Да всё огонь!",
'Че мутиш?' => "Сижу, скучаю, убиваю"
];
foreach($messages_array as $k => $v){
if($message == $k){$otwet = $v;}
}
$request_params = [
'message' => $otwet,
'user_id' => $user_id,
'access_token' => $token,
'v' => '5.0'
];
$get_params = http_build_query($request_params);
file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
echo('ok');
break;
return false;
}
?>


Я пишу боту, например: Привет бот - он мне отвечает Привет {Имя}, а если пишу: привет бот, то не отвечает. Как сделать чтобы с большой и с маленькой буквы было без разницы?
  • Вопрос задан
  • 480 просмотров
Решения вопроса 1
@entermix
Нужно привести строки к единому регистру, или сравнивать их без его учета, примерно так:
if($message == $k){$otwet = $v;}

Заменить на:
if(strtolower($message) == strtolower($k)){$otwet = $v;}

php.net/manual/ru/function.strtolower.php
php.net/manual/ru/function.strtoupper.php

Или:
if (strcasecmp($message, $k) == 0){$otwet = $v;}

php.net/manual/ru/function.strcasecmp.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@gob1
Почему в данный код нельзя
добавить свои варианты Вопрос - Ответ
ORlX.png
$messages_array = [
'Привет бот' => "Привет, {$user_name}!",
'как дела' => "Да всё огонь!",
'Че мутиш?' => "Сижу, скучаю, убиваю"

добавил своих ответов как выше бот не отвечает heroku взорвет мой мозг
после своих правок в логах
2018-06-19T17:47:07.660652+00:00 app[web.1]: 10.47.190.238 - - [19/Jun/2018:17:47:07 +0000] "POST / HTTP/1.1" 500 - "-" "curl/7.38.0

2018-06-19T17:18:07.431038+00:00 app[web.1]: [19-Jun-2018 17:18:07 UTC] PHP Parse error: syntax error, unexpected ''как дела'' (T_CONSTANT_ENCAPSED_STRING), expecting ']' in /app/web/index.php on line 17

в чем моя ошибка
как добавить боту функционала? или это все возможности php?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 22:33
25000 руб./за проект
23 апр. 2024, в 22:07
12000 руб./за проект