微信开发 - syntax error, unexpected T_AS in example.php on line 211?

WBOY
リリース: 2016-06-06 20:15:07
オリジナル
901 人が閲覧しました

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

<code>$foreach($arr_item as $item) {
        $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
    }
</code>
ログイン後にコピー
ログイン後にコピー

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

<code><?php //define your token 
define("TOKEN", "weixin");//这里填写的是你在微信上设置的TOKEN,但是必须保证与微信公众平台 接口配置信息一致 
$wechatObj = new wechatCallbackapiTest(); 
$wechatObj->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 = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    <content></content>
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time(),$content);
        return $result;
    }
    /*回复图片消息xml*/
    private function transmitImage($object,$imageArray){
        $itemTpl = "<image>
                    <mediaid></mediaid>
                    </image>";
        $item_str = sprintf($itemTpl,$imageArray['MediaId']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复语音消息xml*/
    private function transmitVoice($object,$voiceArray){
        $itemTpl = "<voice>
                    <mediaid></mediaid>
                    </voice>";
        $item_str = sprintf($itemTpl,$voiceArray['MediaId']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复视频消息Xml*/
    private function transmitVideo($object,$videoArray){
        $itemTpl = "<video>
                    <mediaid></mediaid>
                    <thumbmediaid></thumbmediaid>
                    <title></title>
                    <descrption></descrption>
                    </video>";
        $item_str = sprintf($itemTpl,$videoArray['MediaId'],$videoArray['ThumbMediaId'],$videoArray['Title'],$videoArray['Descrption']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复图文消息xml*/
    private function transmitNews($object,$arr_item){
        if(!is_array($arr_item))
            return;
        $itemTpl = "<item>
                    <title></title> 
                    <description></description>
                    <picurl></picurl>
                    <url></url>
                    </item>";
        $item_str = "";
        $foreach($arr_item as $item) {
            $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
        }
        $newsTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    <articlecount>%s</articlecount>
                    <articles>
                    $item_str
                    </articles>
                    </xml>";
        $result = sprintf($newsTpl,$object->FromUserName,$object->ToUserName,time(),count($arr_item));
        return $result;
    }
    /*回复音乐xml*/
    private function transmitMusic($object,$musicArray){
        $itemTpl = "<music>
                    <title></title>
                    <description></description>
                    <musicurl></musicurl>
                    <hqmusicurl></hqmusicurl>
                    
                    </music>";
        $item_str = sprintf($itemTpl,$musicArray['Title'],$musicArray['Description'],$musicArray['MusicUrl'],$musicArray['HQMusicUrl']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $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; 
            } 
        } 
} 


?> </code>
ログイン後にコピー
ログイン後にコピー

回复内容:

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

<code>$foreach($arr_item as $item) {
        $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
    }
</code>
ログイン後にコピー
ログイン後にコピー

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

<code><?php //define your token 
define("TOKEN", "weixin");//这里填写的是你在微信上设置的TOKEN,但是必须保证与微信公众平台 接口配置信息一致 
$wechatObj = new wechatCallbackapiTest(); 
$wechatObj->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 = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    <content></content>
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time(),$content);
        return $result;
    }
    /*回复图片消息xml*/
    private function transmitImage($object,$imageArray){
        $itemTpl = "<image>
                    <mediaid></mediaid>
                    </image>";
        $item_str = sprintf($itemTpl,$imageArray['MediaId']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复语音消息xml*/
    private function transmitVoice($object,$voiceArray){
        $itemTpl = "<voice>
                    <mediaid></mediaid>
                    </voice>";
        $item_str = sprintf($itemTpl,$voiceArray['MediaId']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复视频消息Xml*/
    private function transmitVideo($object,$videoArray){
        $itemTpl = "<video>
                    <mediaid></mediaid>
                    <thumbmediaid></thumbmediaid>
                    <title></title>
                    <descrption></descrption>
                    </video>";
        $item_str = sprintf($itemTpl,$videoArray['MediaId'],$videoArray['ThumbMediaId'],$videoArray['Title'],$videoArray['Descrption']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $result = sprintf($textTpl,$object->FromUserName,$object->ToUserName,time());
        return $result;
    }
    /*回复图文消息xml*/
    private function transmitNews($object,$arr_item){
        if(!is_array($arr_item))
            return;
        $itemTpl = "<item>
                    <title></title> 
                    <description></description>
                    <picurl></picurl>
                    <url></url>
                    </item>";
        $item_str = "";
        $foreach($arr_item as $item) {
            $item_str .=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
        }
        $newsTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    <articlecount>%s</articlecount>
                    <articles>
                    $item_str
                    </articles>
                    </xml>";
        $result = sprintf($newsTpl,$object->FromUserName,$object->ToUserName,time(),count($arr_item));
        return $result;
    }
    /*回复音乐xml*/
    private function transmitMusic($object,$musicArray){
        $itemTpl = "<music>
                    <title></title>
                    <description></description>
                    <musicurl></musicurl>
                    <hqmusicurl></hqmusicurl>
                    
                    </music>";
        $item_str = sprintf($itemTpl,$musicArray['Title'],$musicArray['Description'],$musicArray['MusicUrl'],$musicArray['HQMusicUrl']);
        $textTpl = "<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    $item_str
                    </xml>";
        $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; 
            } 
        } 
} 


?> </code>
ログイン後にコピー
ログイン後にコピー

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート