찾다
백엔드 개발PHP 튜토리얼微信开发 - syntax error, unexpected T_AS in example.php on line 211?

放到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不是变量,为什么前面有个$

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구