Board logo

标题: 如何使您的 PHP 应用程序变成聊天机器人(bot)-3 [打印本页]

作者: look_w    时间: 2018-7-16 12:25     标题: 如何使您的 PHP 应用程序变成聊天机器人(bot)-3

得到您需要的天气信息要得到与您相关的天气信息,需要解析请求的文本。这就意味着要对 weather 方法做一些小小的修改,如清单 4 所示。
清单 4. 新的 weather 方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class weatherbot
{
function weather(&$irc, &$data)
{
global $wdc;

$zip = $data->messageex[1];

$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Yeah, weather for $zip");

$fc = $wdc->getForecast( $zip, 1 );
foreach( $fc['days'] as $day )
{
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Condition: ".$day['day'][ 'condition' ] );
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"High: ".$day[ 'temperatureHigh' ] );
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Low: ".$day[ 'temperatureLow' ] );
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Wind: ".$day['day'][ 'wind' ] );
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Wind Degrees: ".$day['day'][ 'windDegrees' ] );
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Wind Direction: ".$day['day'][ 'windDirection' ] );
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Precipitation: ".$day['day'][ 'precipitation' ] );
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel,
"Humidity: ".$day['day'][ 'humidity' ] );
}
}
}




IRC 模块巧妙地将用户输入的消息断开为单词,可以在 messageex 数组中以数组的方式引用这些单词。在本例中,第一个条目是邮政编码。
图 5 展示了如何使用具有邮政编码的天气请求。正如所看到的,我输入 19081,这是 Swarthmore, Pa.,Swarthmore College 所在地的邮政编码。
图 5. Swarthmore, Pa. 的天气情况当然,我应该进行更多的错误检查,例如确保邮政编码是有效的。但是我将这些留给您自己来完成。
结束语本文涵盖了连接 PHP 应用程序到 IRC 的基本内容。您可以使用该应用程序作为起点,并且添加自己的 PHP 类到代码中。然后您就可以通过 IRC 利用浏览器使用您的 Web 应用程序了。
我是让用户使用他们喜欢的交流方式的坚定的拥护者 —— 发送电子邮件消息或者是通过即时消息客户机。本文所提供的仅仅是在 PHP 应用程序中放入另一种类型的接口的一个例子。我鼓励在带有 PHP 代码的标准的 Web 范围之外进行思考。
另外,我鼓励您将自己的模块提供给 PEAR。最好是提供干净压缩的代码,这将有益于大家。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0