今天有人跟我反馈说YurunOAuthLogin类库的微博登录getUserInfo有问题,国际惯例我自己肯定是没问题的。后来通过了解,他本机也没问题,客户的php5.3机子上就有问题。
于是我本地用php5.3试了一下,果然!!!也没问题。。。
这时候我只能一个一个字符看代码,哪里可能会出问题。一个一个函数查了下文档,看看各版本下会不会有坑在。
果然,http_build_query在部分php5.3版本因配置问题导致结果中&变成&。
这是由于php配置中arg_separator.output的设置问题。
除了修改配置文件,代码中也可以解决这个问题。
http_build_query($data, '', '&');
通过第三个参数来设置分隔符,完美解决。