问答详情
源自:3-2 接收事件订阅与回复响应消息(二)

怎么检查php代码是否正确

写php代码 ,怎么才能写了之后知道代码又没小的错误,视频中只能在微信号上验证是否正确,然后还得自己去挨着找错误

提问者:qq_我勒个去_1 2017-04-13 12:53

个回答

  • 慕虎6064091
    2017-04-14 14:06:32
    已采纳

    微信有网页调试工具,可以用那个调试工具

  • 猫熊_
    2017-12-25 19:32:38

    我给你写段代码,当日志或断点用,

    private function testlog($data){
    
    
        file_put_contents("testlog.txt", date('Y-m-d H:i:s',time())."\r\n".$data."\r\n".'-----------------------------------------'."\r\n", FILE_APPEND);
    }

    放在同一个文件直接调用$this->testlog($data);$data可以写你接收到的信息或标记,我自己就是这样找bug的

    class Index extends Controller{
        public function index(){
    
            $data=input('param.');
    
          //  test
            $mark='get数据为:';
            foreach ($data as $key=>$value){
               $mark.=$key.':'.$value."\r\n";
            }
            $this->testlog($mark);
    
            if (array_key_exists("echostr",$data)){//第一次链接走这
                   die($data['echostr']);
            }else{
                $e='success';//mark
                $this->testlog($e);
                $this->response();
    
            }
    
        }
    
        private function response(){
            /*
             * <xml>  <ToUserName>< ![CDATA[toUser] ]></ToUserName>  <FromUserName>< ![CDATA[fromUser] ]></FromUserName>  <CreateTime>1348831860</CreateTime>  <MsgType>< ![CDATA[text] ]></MsgType>  <Content>< ![CDATA[this is a test] ]></Content>  <MsgId>1234567890123456</MsgId>  </xml>
             */
            $data=$GLOBALS['HTTP_RAW_POST_DATA'];
            if (empty($data)) {
                $this->testlog('xml字符串为空');
            }
    
            libxml_disable_entity_loader(true);//禁止xml实体解析,防止xml注入
            $xml = simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);//从字符串获取simpleXML对象
    
            $to=$xml->FromUserName;
    
            $this->testlog($to);
    
            $from=$xml->ToUserName;
            $content=$xml->Content;
            switch ($xml->MsgType){
                case 'text'://文本消息
                    $type='text';
                    $reversion="大漠孤烟直,长河落日圆";
                    $temp="<xml>
                           <ToUserName><![CDATA[%s]]></ToUserName>
                           <FromUserName><![CDATA[%s]]></FromUserName>
                           <CreateTime>%s</CreateTime>
                           <MsgType><![CDATA[%s]]></MsgType>
                           <Content><![CDATA[%s]]></Content>
                           </xml>";
                    $e=sprintf($temp,$to,$from,time(),$type,$reversion);
                    $this->testlog($e);
                    echo $e;
                break;
            }
    
    
        }
    
    
    
    
        private function testlog($data){
    
    
            file_put_contents("testlog.txt", date('Y-m-d H:i:s',time())."\r\n".$data."\r\n".'-----------------------------------------'."\r\n", FILE_APPEND);
        }
    
    }


  • weibo_老巷弄堂_0
    2017-04-14 14:18:34

    可以使用有代码自动检查的编译工具