@TechNOIR

JS+PHP. Бот не правильно отвечает из базы. Как исправить?

Добрый день.
Имеется php чат-бот.. Фразы на которые отвечать и ответы берет из csv файла. Первый столбец "что говорим боту", второй - "что он отвечает.
Если фразы нет в базе,то должен говорить "Я не понимаю!"
На фразы из файла отвечает правильно, но заметил что при отправке ему одиночных букв типа П или К отвечает фразой из файла. Как будто если в фразе есть эта буква то он отвечает соответствующим ответом...
Есть идеи как исправить товарищи? А то я уже подзапутался..

php код:
spoiler
<?php
header('Content-type: text/html; charset=utf-8');
	if(!setlocale(LC_ALL, 'ru_RU.utf8')) setlocale(LC_ALL, 'en_US.utf8');
	if(setlocale(LC_ALL, 0) == 'C') die('Не поддерживается ни одна из перечисленных локалей (ru_RU.utf8, en_US.utf8)');


$responses=array();




	$handle = fopen('php://memory', 'w+');
	fwrite($handle, iconv('CP1251', 'UTF-8', file_get_contents('base/base.csv')));
	rewind($handle);
	while (($row = fgetcsv($handle, 1000, ';')) !== false) 
	
{
    $d=$row[0];
    $b=$row[1];
    $responses["$d"] = $b;

}
	
	
fclose($handle);







$q = $_GET["q"];


	$response = "";

	if ($q != "") {
		# code...
		$q = strtolower($q);
		foreach ($responses as $r => $value) {
			# code...
			$r = strtolower($r);
			if (strpos($r, $q) !== false) {
				# code...
			
				$response = $value;
				if (strpos($r, $q)==1) 	{
					    $response = "Я не понимаю!";
					    $noresponse = "Я не понимаю!";
					}	
			}

		}
	}
	$noresponse = "Я не понимаю!";
	echo $response === "" ? $noresponse : $response;
	//var_dump($handle);


js
spoiler
function ai(conv,message){
        // $("#send").click(function(){
            $.get("getresponse.php", {q:message}, function(data, status){
                // alert("Data: " + data + "\nStatus: " + status);
                send_message(conv,data);
            });
        // });
}</spoiler>
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы