qq_我勒个去_1
2017-04-13 12:53
写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);
}
}
可以使用有代码自动检查的编译工具
PHP实现微信公众平台开发—提升篇
64953 学习 · 371 问题
相似问题