仿腾讯新闻网动态获取数据

<?php
/**
  * wechat php test
  */


//define your token
define("TOKEN", "chuliabc");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();
//$wechatObj->valid();


class wechatCallbackapiTest
{
public function valid()
    {
        $echoStr = $_GET["echostr"];


        //valid signature , option
        if($this->checkSignature()){
        echo $echoStr;
        exit;
        }
    }


    public function responseMsg()
    {
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];


      //extract post data
if (!empty($postStr)){
                
              $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $event = $postObj->Event;
                $textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";               


                switch ($postObj->MsgType) {
                    case 'event':
                        if ($event == 'subscribe') {
                            $contentStr = "welcome 每学网 菜单如下 \r\n\r\n  输入 新闻 返回新闻条目";
                            $msgType = 'text';
                            //把格式化的数据写入某个字符串
                            $textTpl = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,$contentStr);
                            echo $textTpl;


                        }
                        break;
                    case 'text':
                        if ($keyword=='新闻') {


                            //链接数据库
                            $con = mysql_connect('localhost','a0401140227','64326237');
                            mysql_select_db('a0401140227',$con);
                            mysql_query('SET NAMES UTF8');
                            $sql = "SELECT title,description,pic,url FROM weixin LIMIT 0,10";
                            //踩过坑 desc用不了
                            $result = mysql_query($sql);
                            $newsHeader = "<xml>
                                        <ToUserName><![CDATA[%s]]></ToUserName>
                                        <FromUserName><![CDATA[%s]]></FromUserName>
                                        <CreateTime>%s</CreateTime>
                                        <MsgType><![CDATA[news]]></MsgType>
                                        <ArticleCount>%s</ArticleCount>
                                        <Articles>";
                            $newsContent="<item>
                                        <Title><![CDATA[%s]]></Title> 
                                        <Description><![CDATA[%s]]></Description>
                                        <PicUrl><![CDATA[%s]]></PicUrl>
                                        <Url><![CDATA[%s]]></Url>
                                        </item>";
                            $newsFooter="</Articles>
                                            </xml>";
                            $itemCount = 0;
                            while ($row = mysql_fetch_assoc($result)){
                                  $contentStr .=sprintf($newsContent,$row['title'],$row['desc'],$row['pic'],$row['url']);
                                  ++$itemCount;
                            }  
                            $newsHeader = sprintf($newsHeader,$fromUsername,$toUsername,$time,$itemCount);
                            $newsTpl = $newsHeader.$contentStr.$newsFooter;
                            echo $newsTpl;
                            // $result = sprintf($newsTpl, $fromUsername, $toUsername, $time, $title1,$des1,$pic1,$url1,$title2,$des2,$pic2,$url2);    
                            // echo $result;   
                        }
                        break;
                    default:
                       
                        break;
                }


                //file_put_contents('abcd.text', $row.'======'.$event.'==='.$toUsername.'==='.$keyword,FILE_APPEND);
                //如果用户输入不为空                      
// if(!empty( $keyword ))
    //             {
    //           $msgType = "text";
    //                 if($keyword == 'OK'){
    //                     $contentStr = "Hello 每学网!!!";
    //                 }else{
    //                     //返回的内容是"Welcome to wechat world!"
    //                     //$contentStr = "Welcome to wechat world!";
    //                     preg_match('/(\d+)([+-])(\d+)/i', $keyword,$res);
    //                     if($res[2] == '+'){
    //                         $a = $res[1] + $res[3];
    //                     }else if($res[2] == '-'){
    //                         $a = $res[1] - $res[3];
    //                     }else if($res[2] == '*'){
    //                         $a = $res[1] * $res[3];
    //                     }else{
    //                         $a = $res[1] / $res[3];
    //                     }
    //                     $contentStr = "Welcome to wechat world!".$a;
    //                 }                   
    //                 //填充模版
    //             $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    //             echo $resultStr;
    //             }else{
    //             echo "Input something...";
    //             }


        }else {
        echo "";
        exit;
        }
    }

private function checkSignature()
{
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
       
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}


?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值