当前位置:Gxlcms > PHP教程 > 微信开发-syntaxerror,unexpectedT_ASinexample.phponline211?

微信开发-syntaxerror,unexpectedT_ASinexample.phponline211?

时间:2021-07-01 10:21:17 帮助过:9人阅读

放到SAE中 ,请问这是怎么回事? 出错地方如下:

$foreach($arr_item as $item) {
        $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
    }

代码贴到下面,望各位大神解决这个问题!

valid();//这里是测试网站配置信息和开发的是否一致。

$wechatObj->responseMsg();//新增加这一项,目的是调用responseMsg()这个功能。



class wechatCallbackapiTest 
{

//若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。

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


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

 public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $RX_TYPE = trim($postObj->MsgType);

            switch ($RX_TYPE)
            {
                case "text":
                    $resultStr = $this->receiveText($postObj);
                    break;
                case "image":
                    $resultStr = $this->receiveImage($postObj);
                    break;
                case "location":
                    $resultStr = $this->receiveLocation($postObj);
                    break;
                case "voice":
                    $resultStr = $this->receiveVoice($postObj);
                    break;
                case "video":
                    $resultStr = $this->receiveVideo($postObj);
                    break;
                case "link":
                    $resultStr = $this->receiveLink($postObj);
                    break;
                case "event":
                    $resultStr = $this->receiveEvent($postObj);
                    break;
                default:
                    $resultStr = "unknow msg type: ".$RX_TYPE;
                    break;
            }
            echo $resultStr;
        }else {
            echo "";
            exit;
        }
    }
    /*文本消息->1*/
    private function receiveText($object){
        $keyword = trim($object->Content);
        if(!empty($keyword)){
         $url = "http://www.tuling123.com/openapi/api?key=a2fcd4181d8aa942ca2e078b1c479684&info=".$keyword;
         $data = file_get_contents($url);
         $text =json_decode($data,ture);
         $content = $text['text'];
         $result =$this->transmitText($object,$content);
        }
        else if($keyword=="图文"||$keyword=="单图文"){
            $content = array();
            $content[]=array("Title"=>"单图文标题",
                             "Descrption"=>"单图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $result = $this->transmitNews($object,$content);
        }
        else if($keyword=="多图文"){
            $content = array();
            $content[]=array("Title"=>"多图文标题1",
                             "Descrption"=>"图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $content[]=array("Title"=>"多图文标题2",
                             "Descrption"=>"图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $content[]=array("Title"=>"多图文标题3",
                             "Descrption"=>"图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $result = $this->transmitNews($object,$content);
        }else if($keyword=="音乐"){
            $content = array("Title"=>"七月上",
                             "Descrption"=>"jam",
                             "MusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3",
                             "HQMusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3");
            $result = $this->transmitMusic($object,$content);
        }
        return $result;
    }
    /*图片消息->1*/
    private function receiveImage($object){
            $content=array("MediaId"=>$object->MediaId);
            $result = $this->transmitImage($object,$content);
            return $result;
    }
    /*回复语音消息->1*/
    private function receiveVoice($object){
            $content=array("MediaId"=>$object->MediaId);
            $result =$this->transmitVoice($object,$content);
            return $result;
    }
    /*回复视频消息->*/
    private function receiveVideo($object){
        $content=array("MediaId"=>$object->MediaId,
                        "ThumbMediaId"=>$object->ThumbMediaId,
                        "Title"=>"",
                        "Descrption"=>"");
        $result=$this->transmitVideo($object,$content);
        return $result;
    }
    /*回复文本消息->xml*/
    private function transmitText($object,$content){
        $textTpl = "
                    
                    
                    %s
                    
                    
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time(),$content);
        return $result;
    }
    /*回复图片消息xml*/
    private function transmitImage($object,$imageArray){
        $itemTpl = "
                    
                    ";
        $item_str = sprintf($itemTpl,$imageArray['MediaId']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复语音消息xml*/
    private function transmitVoice($object,$voiceArray){
        $itemTpl = "
                    
                    ";
        $item_str = sprintf($itemTpl,$voiceArray['MediaId']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复视频消息Xml*/
    private function transmitVideo($object,$videoArray){
        $itemTpl = "";
        $item_str = sprintf($itemTpl,$videoArray['MediaId'],$videoArray['ThumbMediaId'],$videoArray['Title'],$videoArray['Descrption']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复图文消息xml*/
    private function transmitNews($object,$arr_item){
        if(!is_array($arr_item))
            return;
        $itemTpl = "
                    <![CDATA[%s]]> 
                    
                    
                    
                    ";
        $item_str = "";
        $foreach($arr_item as $item) {
            $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
        }
        $newsTpl = "
                    
                    
                    %s
                    
                    %s
                    
                    $item_str
                    
                    ";
        $result = sprintf($newsTpl,$object->FromUserName,$object->ToUserName,time(),count($arr_item));
        return $result;
    }
    /*回复音乐xml*/
    private function transmitMusic($object,$musicArray){
        $itemTpl = "
                    <![CDATA[%s]]>
                    
                    
                    
                    
                    ";
        $item_str = sprintf($itemTpl,$musicArray['Title'],$musicArray['Description'],$musicArray['MusicUrl'],$musicArray['HQMusicUrl']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result=sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }



// 开发者通过检验signature对请求进行校验 
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; 
            } 
        } 
} 


?> 

回复内容:

放到SAE中 ,请问这是怎么回事? 出错地方如下:

$foreach($arr_item as $item) {
        $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
    }

代码贴到下面,望各位大神解决这个问题!

valid();//这里是测试网站配置信息和开发的是否一致。

$wechatObj->responseMsg();//新增加这一项,目的是调用responseMsg()这个功能。



class wechatCallbackapiTest 
{

//若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。

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


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

 public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $RX_TYPE = trim($postObj->MsgType);

            switch ($RX_TYPE)
            {
                case "text":
                    $resultStr = $this->receiveText($postObj);
                    break;
                case "image":
                    $resultStr = $this->receiveImage($postObj);
                    break;
                case "location":
                    $resultStr = $this->receiveLocation($postObj);
                    break;
                case "voice":
                    $resultStr = $this->receiveVoice($postObj);
                    break;
                case "video":
                    $resultStr = $this->receiveVideo($postObj);
                    break;
                case "link":
                    $resultStr = $this->receiveLink($postObj);
                    break;
                case "event":
                    $resultStr = $this->receiveEvent($postObj);
                    break;
                default:
                    $resultStr = "unknow msg type: ".$RX_TYPE;
                    break;
            }
            echo $resultStr;
        }else {
            echo "";
            exit;
        }
    }
    /*文本消息->1*/
    private function receiveText($object){
        $keyword = trim($object->Content);
        if(!empty($keyword)){
         $url = "http://www.tuling123.com/openapi/api?key=a2fcd4181d8aa942ca2e078b1c479684&info=".$keyword;
         $data = file_get_contents($url);
         $text =json_decode($data,ture);
         $content = $text['text'];
         $result =$this->transmitText($object,$content);
        }
        else if($keyword=="图文"||$keyword=="单图文"){
            $content = array();
            $content[]=array("Title"=>"单图文标题",
                             "Descrption"=>"单图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $result = $this->transmitNews($object,$content);
        }
        else if($keyword=="多图文"){
            $content = array();
            $content[]=array("Title"=>"多图文标题1",
                             "Descrption"=>"图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $content[]=array("Title"=>"多图文标题2",
                             "Descrption"=>"图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $content[]=array("Title"=>"多图文标题3",
                             "Descrption"=>"图文内容",
                             "PicUrl"=>"http://v1.qzone.cc/pic/201602/12/15/12/56bd85d5cb22d067.jpg%21600x600.jpg",
                             "Url"=>"http://m.cnblogs.com/?u=txw1958");
            $result = $this->transmitNews($object,$content);
        }else if($keyword=="音乐"){
            $content = array("Title"=>"七月上",
                             "Descrption"=>"jam",
                             "MusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3",
                             "HQMusicUrl"=>"http://sc1.111ttt.com/2015/5/12/28/105281351446.mp3");
            $result = $this->transmitMusic($object,$content);
        }
        return $result;
    }
    /*图片消息->1*/
    private function receiveImage($object){
            $content=array("MediaId"=>$object->MediaId);
            $result = $this->transmitImage($object,$content);
            return $result;
    }
    /*回复语音消息->1*/
    private function receiveVoice($object){
            $content=array("MediaId"=>$object->MediaId);
            $result =$this->transmitVoice($object,$content);
            return $result;
    }
    /*回复视频消息->*/
    private function receiveVideo($object){
        $content=array("MediaId"=>$object->MediaId,
                        "ThumbMediaId"=>$object->ThumbMediaId,
                        "Title"=>"",
                        "Descrption"=>"");
        $result=$this->transmitVideo($object,$content);
        return $result;
    }
    /*回复文本消息->xml*/
    private function transmitText($object,$content){
        $textTpl = "
                    
                    
                    %s
                    
                    
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time(),$content);
        return $result;
    }
    /*回复图片消息xml*/
    private function transmitImage($object,$imageArray){
        $itemTpl = "
                    
                    ";
        $item_str = sprintf($itemTpl,$imageArray['MediaId']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复语音消息xml*/
    private function transmitVoice($object,$voiceArray){
        $itemTpl = "
                    
                    ";
        $item_str = sprintf($itemTpl,$voiceArray['MediaId']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复视频消息Xml*/
    private function transmitVideo($object,$videoArray){
        $itemTpl = "";
        $item_str = sprintf($itemTpl,$videoArray['MediaId'],$videoArray['ThumbMediaId'],$videoArray['Title'],$videoArray['Descrption']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复图文消息xml*/
    private function transmitNews($object,$arr_item){
        if(!is_array($arr_item))
            return;
        $itemTpl = "
                    <![CDATA[%s]]> 
                    
                    
                    
                    ";
        $item_str = "";
        $foreach($arr_item as $item) {
            $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
        }
        $newsTpl = "
                    
                    
                    %s
                    
                    %s
                    
                    $item_str
                    
                    ";
        $result = sprintf($newsTpl,$object->FromUserName,$object->ToUserName,time(),count($arr_item));
        return $result;
    }
    /*回复音乐xml*/
    private function transmitMusic($object,$musicArray){
        $itemTpl = "
                    <![CDATA[%s]]>
                    
                    
                    
                    
                    ";
        $item_str = sprintf($itemTpl,$musicArray['Title'],$musicArray['Description'],$musicArray['MusicUrl'],$musicArray['HQMusicUrl']);
        $textTpl = "
                    
                    
                    %s
                    
                    $item_str
                    ";
        $result=sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }



// 开发者通过检验signature对请求进行校验 
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; 
            } 
        } 
} 


?> 

foreach不是变量,为什么前面有个$

人气教程排行