微信开发日常翻车

### 在微信项目的过程中踩了无数的坑,数之不尽
1.不要全信文档!不要全信文档!不要全信文档!
```xml
<xml>
<ToUserName><![CDATA[gh_82479813ed64]]></ToUserName>
<FromUserName><![CDATA[ojpX_jig-gyi3_Q9fHXQ4rdHniQs]]></FromUserName>
<CreateTime>1412075435</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[scancode_waitmsg]]></Event>
<EventKey><![CDATA[rselfmenu_0_0]]></EventKey>
<ScanCodeInfo>
<ScanType><![CDATA[qrcode]]></ScanType>
<ScanResult><![CDATA[http://weixin.qq.com/r/pUNnf4HEX9wgrcUc9xa3]]></ScanResult>
<EventKey><![CDATA[rselfmenu_0_0]]></EventKey>
</ScanCodeInfo>
</xml>
```
微信的扫一扫带提示信息事件scancode_waitmsg返回的数据格式
<ScanResult>是包含在<ScanCodeInfo>里边的!!!
2.Curl爬取到的网页如果出现乱码多半是文字编码格式不同造成的,我们这里默认的是UTF-8,但是有部分网页是GBK或者gb2312,所以在输出时要用iconv('GBK','UTF-8',$str);进行转码。
3.在网页中用正则匹配内容的时候[\n]如果匹配不到需要用"/[.\n]/s";在正则中的模式修正符s将会使元字符'.'匹配到换行符。
4.拼接到地址栏的中文参数,会自动进行urlencode();如果网站本身的参数中文是gb2312编码的话,在传参数的时候依然会出现错误,故而应先对传进来的内容进行转码:
```php
$name = iconv('UTF-8','gb2312',$name);
$name = urlencode($name);
```
来避免错误的产生。

posted @ 2017-07-17 18:00  好人二狗  阅读(202)  评论(0编辑  收藏  举报