- Get Started
- 基础
- 进阶
- 技巧
- 插件推荐
- API
- Get Started
- 基础 API
- QueryList html($html)
- string getHtml($rel = true)
- QueryList rules(array $rules)
- QueryList range($selector)
- QueryList removeHead()
- QueryList query(Closure $callback = null)
- Collection getData(Closure $callback = null)
- Array queryData(Closure $callback = null)
- QueryList static getInstance()
- void destruct()
- void destructDocuments() 静态方法
- QueryList pipe(Closure $callback)
- 特殊 API
- 高级 API
- 默认插件
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
常见问题 FAQ
{info} QueryList存在多个版本,不同版本之间用法是不兼容的,看文档之前请先确认你看的文档版本号与你正在使用的QueryList版本号是否是对应的,据以往经验很多用户使用报错都是因为这个问题,可以通过文档右上角来切换文档版本号。
安装问题
安装相关的问题查看安装章节。
其它问题
Document with ID '...' isn't loaded. Use phpQuery::newDocument($html) or phpQuery::newDocumentFile($file) first.
此类错误一般是因为脚本中涉及大量的QueryList对象调用,而又没有及时释放资源的内存占用,导致内存溢出引起的,解决方法就是尽量重用同一个QueryList对象并及时释放资源的内存占用:
错误示范
foreach ($urls as $url) { QueryList::get($url)->rules([ //.... ])->query()->getData(); }
正确做法
$ql = QueryList::rules([ //.... ]); foreach ($urls as $url) { $ql->get($url)->query()->getData(); // 释放资源,销毁内存占用 QueryList::destructDocuments(); }
或者这样:
foreach($urls as $url){ $ql = QueryList::rule([ // ... ]); $data = $ql->get($url)->queryData(); //.... // 销毁当前QueryList对象 $ql->destruct(); }
DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';'
这是DOMDocument
类loadHTML
方法产生的警告信息,当采集的页面HTML格式是非标准化格式时会产生,可以在代码中加入下列代码来屏蔽输出此类警告信息:
libxml_use_internal_errors(true);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论