SW-EN
@SW-EN
W@P Блог Ч@Т

Бот Чата — составление команд (php, mysql)?

Имеется Чат - Реализована Викторина (Ответы с Вопросами в БД)...
Добавляю Бармена
include "barmen.php";

//Команда привет
if($_POST['new_post'] == 'Привет' ) {mysql_query("INSERT into chat values(0, '$IP','".$vrem."','Бармен', 'Приветствую ".$_POST['avtor']." пиво водка ром текила ', '".mysql_escape_string($_POST[t])."' ,'$dt', '',0)"); echo mysql_error() ;}

1) $_POST['new_post'] == 'Привет' - функция сравнения - что применить ,
чтобы приблизительное совпадение , без регистра и даже с текстом - срабатывание.
Или только регулярное выражение

2) Если команд более 100 - как примерно - массивом составить
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
@LazyDev
Без учета регистра, просто поиск по тексту.
Будут ложные срабатывания на обычные сообщения, в которых будут встречаться "команды".
<?php

$message = !empty($_POST['new_post']) ? (string) $_POST['new_post'] : null;

switch (true) {
	case (stripos($message, 'привет') !== false):
		// sql insert
		break;
		
	case (stripos($message, 'пока') !== false):
		// sql insert
		break;
	
}


Я бы сделал в виде массива с конкретно заданными командами, типа:
$map = [
	'привет' => 'INSERT ...',
	'пока' => 'INSERT ...',
];

$message = !empty($_POST['new_post']) ? (string) $_POST['new_post'] : null;
foreach ( $map as $match => $query ) {
	if ( preg_match("#^\s*{$match}\s*$#Uis", $message) ) {
		// обработка $query
		// mysql_query($query);
		break;
	}
}
Ответ написан
SW-EN
@SW-EN Автор вопроса
W@P Блог Ч@Т
Никто не встречал готовую базу - бот болтун \7
И как логически себе представить - само обучаемый Бот ?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы