思路:
通过用户发送的关键字判断的方式来判断功能,再调用回复相应的内容。
当一个功能不匹配的时候,则进入下一个功能判断。
程序示例如下:
//接收文本消息 private function receiveText($object) { $keyword = trim($object->Content); //判断天气 if (strstr($keyword, "天气")){ $city = str_replace('天气', '', $keyword); include("weather.php"); $content = getWeatherInfo($city); //判断笑话 }else if (strstr($keyword, "笑话")){ include("joke.php"); $content = getJokeInfo(); //判断世界杯 }else if (strstr($keyword, "世界杯")){ $content[] = array("Title" =>"2014年巴西世界杯赛程","Description" =>"", "PicUrl" =>"https://images0.cnblogs.com/i/340216/201406/111304544204656.jpg", "Url" =>"http://url.cn/RInu1v"); //其他默认回复 }else{ $content = date("Y-m-d H:i:s",time())." 技术支持 方倍工作室"; } if(is_array($content)){ if (isset($content[0]['PicUrl'])){ $result = $this->transmitNews($object, $content); }else if (isset($content['MusicUrl'])){ $result = $this->transmitMusic($object, $content); } }else{ $result = $this->transmitText($object, $content); } return $result; }
上述代码使用if else if这样的分支语句实现类别区分,比如发送“深圳天气”之后,
if (strstr($keyword, "天气")){
判断文字中包括“天气”二个字,就进入了天气类别,
剩下还要把“深圳”2个字提取出来,使用字符串替换的方式,把“天气”2个字替换成空(也就是相当于删除)。
$city = str_replace('天气', '', $keyword);
这样就得到城市名称了。
再将天气查询文件包含进来,并且将城市名称传入
include("weather.php"); $content = getWeatherInfo($city);
这样就查询到了深圳的天气预报信息。
同样的方法,可以将其他功能完整整合进来。