正则表达式,php和preg_match

时间:2014-05-02 23:46:11

标签: php regex

我正在尝试为我现在正在处理的自定义聊天室编写一个“聊天机器人”,我在匹配表达式方面遇到了一些麻烦。

现在,所有内容都会返回错误消息。如果我将所有内容切换到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();}
}

0 个答案:

没有答案