>  기사  >  백엔드 개발  >  thinkPHP 위챗 공개계정 개발, 스위치 오류를 이용한 키워드 답장

thinkPHP 위챗 공개계정 개발, 스위치 오류를 이용한 키워드 답장

WBOY
WBOY원래의
2016-09-24 09:15:101645검색

PHP를 사용하여 WeChat 공개 플랫폼을 개발하다가 키워드 응답 및 if 사용 시 문제가 발생했습니다. else if 문에는 문제가 없지만, 스위치로 전환하면 구성 수정 시 퍼블릭 플랫폼을 제출할 수 없습니다. 혹시 이런 상황을 겪으신 분 계신가요?
코드는 다음과 같습니다.

<code>
if (strtolower( $postObj->MsgType ) == 'text') {
            switch ( trim($postObj->Content )) {
                case '电影':
                    $contnet = '最近都没有看过什么电影,真的是没有什么时间啊。';
                    break;
                case '菜':
                    $content = '最喜欢吃红烧肉了,真心不喜欢那些都是骨头和皮没有肉的荤菜。';
                    break;
                case '饮料':
                    $content = '柠檬水,我感觉我对柠檬水上瘾了。'
                    break;
                default:
                    $content = '这不是我们设置的关键字,你再看看?';
                    break;
            }
            $toUser = $postObj->FromUserName;
            $fromUser = $postObj->ToUserName;
            $time = time();
            $msgType = 'text';
            $template = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        </xml>";
            $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);
            echo $info;
        }
</code>

답글 내용:

PHP를 사용하여 WeChat 공개 플랫폼을 개발하다가 키워드 응답 및 if 사용 시 문제가 발생했습니다. else if 문에는 문제가 없지만, 스위치로 전환하면 구성 수정 시 퍼블릭 플랫폼을 제출할 수 없습니다. 혹시 이런 상황을 겪으신 분 계신가요?
코드는 다음과 같습니다.

<code>
if (strtolower( $postObj->MsgType ) == 'text') {
            switch ( trim($postObj->Content )) {
                case '电影':
                    $contnet = '最近都没有看过什么电影,真的是没有什么时间啊。';
                    break;
                case '菜':
                    $content = '最喜欢吃红烧肉了,真心不喜欢那些都是骨头和皮没有肉的荤菜。';
                    break;
                case '饮料':
                    $content = '柠檬水,我感觉我对柠檬水上瘾了。'
                    break;
                default:
                    $content = '这不是我们设置的关键字,你再看看?';
                    break;
            }
            $toUser = $postObj->FromUserName;
            $fromUser = $postObj->ToUserName;
            $time = time();
            $msgType = 'text';
            $template = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        </xml>";
            $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);
            echo $info;
        }
</code>

세미콜론이 빠졌습니다

<code>case '饮料':
                    $content = '柠檬水,我感觉我对柠檬水上瘾了。'
                    break;</code>

이런 종류의 문제가 발생하면 일반적으로 구문 오류가 발생합니다. 서두르지 말고 주의 깊게 코드를 작성하세요.

구문 오류는 쉽게 찾을 수 있습니다. 오류 메시지를 주의 깊게 읽으십시오.

먼저. Fromuser와 touser는 역
초를 사용합니다. 논리 세미콜론

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