微信公众平台开发(96) 多个功能整合

 

思路:

通过用户发送的关键字判断的方式来判断功能,再调用回复相应的内容。
当一个功能不匹配的时候,则进入下一个功能判断。

程序示例如下:

//接收文本消息
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" =>"//images0.cnblogs.com/i/340216/201406/111304544204656.jpg", "Url" =>"http://url.cn/RInu1v");
    //其他默认回复
    }else{
        $content = date("Y-m-d H:i:s",time())."\n技术支持 方倍工作室";
    }
    
    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);

这样就查询到了深圳的天气预报信息。

 

同样的方法,可以将其他功能完整整合进来。 

 

 

posted @ 2014-06-15 22:41  方倍工作室  阅读(10861)  评论(1编辑  收藏  举报