我正在尝试为我现在正在处理的自定义聊天室编写一个“聊天机器人”,我在匹配表达式方面遇到了一些麻烦。
现在,所有内容都会返回错误消息。如果我将所有内容切换到get变量并在页面本身上进行测试,它将显示四到五条错误消息,然后显示实际消息。我认为这意味着pregmatch和loop只是将第一个结果发回。我怎么能避免这种情况?
include('../lib/bootstrap.php');
if(!isset($_POST['input']))
{
return false;
}
else
{
$error = "UNKNOWN COMMAND";
$sql = "INSERT INTO slconsole(uid, input, output) VALUES (1, :input, :output)";
$que = $db->prepare($sql);
$que->bindParam(':input', $_POST['input']);
$xml = simplexml_load_file('robotsarereal.xml');
foreach($xml->topic as $topic)
{
foreach($topic->input as $input)
{
$input = strtolower($input);
$uinput = strtolower($_POST['input']);
if(preg_match('/{$input}/', $uinput, $matches))
{
foreach($matches[0] as $match)
{
if($match == $input)
{
foreach($topic->output as $output)
{
$que->bindParam(':output', $output);
}
}
}
}
else{ $que->bindParam(':output', $error);}
}
}
try { $que->execute(); } catch(PDOException $e){echo $e->getMessage();}
}