写php代码 ,怎么才能写了之后知道代码又没小的错误,视频中只能在微信号上验证是否正确,然后还得自己去挨着找错误
微信有网页调试工具,可以用那个调试工具
我给你写段代码,当日志或断点用,
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); } }
可以使用有代码自动检查的编译工具