当前位置: 代码迷 >> PHP >> PHP对了,可是对接到微信只回来array
  详细解决方案

PHP对了,可是对接到微信只回来array

热度:11   发布时间:2016-04-28 16:48:13.0
PHP对了,可是对接到微信只返回array
<?php
$result = mysql_query($sql, $link); // 执行查询语句
 
$res=array();
while($row = mysql_fetch_array($result)){
    if(条件){
        $res[] = $row["title"].$row["answer"];
    }
}
return $res;
?>
用这个之后PHP是对,可是接到微信就变成单独的回复一个array
------解决思路----------------------
把数据连接成串,或编码成 json
------解决思路----------------------
return json_encode($res);
------解决思路----------------------
在echo json_encode之前,加上:header('Content-type:application/json;charset=utf-8');
------解决思路----------------------
引用:
Quote: 引用:

在echo json_encode之前,加上:header('Content-type:application/json;charset=utf-8');

 $sql = "select  * FROM `record` WHERE title like '%$keyword%'";
    $result = mysql_query($sql, $link); // 执行查询语句

            
     $res=array();
   
             while($row = mysql_fetch_array($result))
                      {
                 
                       
                  
                  $res[]=$row["title"];
                 
            
                      }
                header('Content-type:application/json;charset=utf-8');
                return json_encode($res);
               mysql_close($link);        
}                                  这次返回的值是[]

返回值为空?那么直接return "hello world";是什么结果?
------解决思路----------------------
引用:
Quote: 引用:

在echo json_encode之前,加上:header('Content-type:application/json;charset=utf-8');

会不会是这个有错误?<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>

你把<FuncFlag>0</FuncFlag>去掉试试。
另外:要返回信息,不应该用return,而是echo
    public function responseMsg(){
       
        //get post data, May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据

        //extract post data
        if(!empty($postStr)){
                
            //解析post来的XML为一个对象$postObj
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        
            $fromUsername = $postObj->FromUserName; //请求消息的用户
            $toUsername = $postObj->ToUserName; //"我"的公众号id
            $keyword = trim($postObj->Content); //用户发送的消息内容
            $time = time(); //时间戳
            $msgtype = 'text'; //消息类型:文本
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        </xml>";
                $contentStr = "输入-h查看帮助吧(=?ω?=)";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
                echo $resultStr;
  相关解决方案