Я сделал вопрос&бот, использующий PHP-коды. Он работает таким образом, что пользователь должен вводить вопросы на панели поиска. После нажатия на кнопку «Отправить» программа выполнит поиск определенных ключевых слов и ответит на заданный вопрос. Однако как показать только один ответ, если в заданном вопросе более одного ключевого слова? Кроме того, как отобразить сообщение об ошибке, когда пользователь не задает вопрос без конкретных ключевых слов?
if (isset($_GET['searchterm']))
{
$question = $_GET['searchterm'];
echo "<b>$question</b>";
echo "<br />";
$token = strtok($question, " ");
while($token !== false)
{
$token = strtok(" ");
switch ($token) {
case "hot":
print "It is now ".$data['main']['temp']. " °C"." hot"."<br>";
break;
case "cold":
print "It is ".$data['main']['temp']. " °C"."<br>";
break;
case "warm":
print "It is ".$data['main']['temp']. " °C"." warm"."<br>";
break;
case "cool":
print "The temperature is ".$data['main']['temp']. " °C"." cool"."<br>";
break;
case "temperature":
print "The temperature now is ".$data['main']['temp']. " °C"."<br>";
break;
case "current":
print "The current temperature is ".$data['main']['temp']. " °C"."<br>";
break;
case "weather":
print "We are now having ".$data['weather'][0]['main']."<br>";
break;
case "wind":
print "The wind speed is currently ".$data['wind']['speed']. " m/s"."<br>";
break;
}
}
}
else {
print "Sorry, we did not understand your question.";
}
Use default conditon on your code:
switch ($i) {
switch ($token)
{
case "hot":
print "It is now ".$data['main']['temp']. " °C"." hot"."<br>";
break;
case "cold":
print "It is ".$data['main']['temp']. " °C"."<br>";
break;
case "warm":
print "It is ".$data['main']['temp']. " °C"." warm"."<br>";
break;
case "cool":
print "The temperature is ".$data['main']['temp']. " °C"." cool"."<br>";
break;
case "temperature":
print "The temperature now is ".$data['main']['temp']. " °C"."<br>";
break;
case "current":
print "The current temperature is ".$data['main']['temp']. " °C"."<br>";
break;
case "weather":
print "We are now having ".$data['weather'][0]['main']."<br>";
break;
case "wind":
print "The wind speed is currently ".$data['wind']['speed']. " m/s"."<br>";
break;
default:
print "wrong question";
}
}
Других решений пока нет …