php substr的一个小坑

说到今天遇到的这个坑,就得说说我开源的YurunHttp类库了。curl请求后,获取header和body,我是通过获取CURLINFO_HEADER_SIZE来进行字符串截取。截取当然用substr,于是截取body时候遇到了问题。

如果网页主体内容为空时,用substr截取就相当于substr('abc', 3)这样的,照理说是截取不到,那截取不到的值是null还是false还是空字符串之前并没有多追究,其实也是没考虑到主体内容为空的情况。

现在问题来了,开发ApiAgent时候,请求了一个返回空主体的地址,返回的是false。然而我在命令行用YurunHttp测试这个地址时候,返回的是空字符串。

百思不得其解,后来一查文档,果然在这种极端情况下,php7.0以上修改了返回值。

结论如下:

substr('abc', 3)

php >= 7.0.0返回空字符串

php < 7.0.0返回false


最后安利一下:

http请求类库——YurunHttp:https://gitee.com/yurunsoft/YurunHttp

接口代理、合并请求——ApiAgent:https://gitee.com/yurunsoft/apiagent

  • 标签
  • 发表评论
当前用户:
  • 评论列表