前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法

PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法

作者头像
李洋博客
发布2022-09-08 15:57:21
8380
发布2022-09-08 15:57:21
举报
文章被收录于专栏:李洋博客李洋博客

最近太忙了,以至于忽略了我的写作哈哈,开个玩笑,给客户开发一个热搜采集插件,知道我忙所以打算让我用现有的微博采集插件改改,想着节省时间行吧,于是乎我开启插件之后提示“E_NOTICE : Undefined offset: 0 (set_error_handler) (1.7.2.3050 (Tenet)) ”,我就说没那么简单吧,看了下错误文件,代码采集的是新浪热搜,经过查询是数组未定义或者不存在。如图提示:

PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法 第1张
PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法 第1张

解决方法

知道问题所在了就修改代码吧,给函数增加一个判断,没有获取到则不执行,所以修改之后如图:

PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法 第2张
PHP提示 “E_NOTICE : Undefined offset: 0” 错误的解决办法 第2张

参考代码:

代码语言:javascript
复制
//$str = urldecode($matches[1][$x]);//注释
if (isset($matches[1][$x])) {
    $str = urldecode($matches[1][$x]);
}else{
    $str = '未定义函数';
}

然后刷新,是的这回真的不报错了,显示“未定义函数”,对啊,因为没有取到值,为什么呢?因为新浪微博添加了一个所谓的“Sina Visitor System(新浪访客系统)”,一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力,应该是今年的早些时候,新浪引入了一个新浪访客系统,也不知道是为了提高用户体验还是为了反爬虫,或许是兼而有之。实际结果就是,爬虫取回来的页面全部变成Sina Visitor System了,所以我们的采集就没有得到数据。

所以换句话说不一定是代码出现了问题,也有可能是爬虫没获取数据导致的,所以为了验证这个问题,我重新尝试了采集百度新闻,但貌似还是失败了,哈哈哈,我的问题哈,有其他问题留言反馈吧!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方法
  • 参考代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档