以下资料均来自官方文档,官方文档地址:https://code.google.com/archive/p/phpquery/wikis

基础

示例

phpQuery::newDocumentFileXHTML('my-xhtml.html')->find('p'); $ul = pq('ul');

载入文档

  • phpQuery::newDocument($html, $contentType = null) 根据标记URL新建一个文档。如果 $contentType为空,则根据文档自动检测编码。检测失败, 则对于text/html类型文档自动赋予utf-8编码。
  • phpQuery::newDocumentFile($file, $contentType = null) 根据文件新建一个文档。类似于newDocument()
  • phpQuery::newDocumentHTML($html, $charset = 'utf-8')
  • phpQuery::newDocumentXHTML($html, $charset = 'utf-8')
  • phpQuery::newDocumentXML($html, $charset = 'utf-8')
  • phpQuery::newDocumentPHP($html, $contentType = null)
  • phpQuery::newDocumentFileHTML($file, $charset = 'utf-8')
  • phpQuery::newDocumentFileXHTML($file, $charset = 'utf-8')
  • phpQuery::newDocumentFileXML($file, $charset = 'utf-8')
  • phpQuery::newDocumentFilePHP($file, $contentType)

pq function

pq($param, $context = null);

pq(); 相当于 jQuery的$();。它主要完成三件事情:

1. 载入标记资源:

// 输入到载入的文档: 
// 对于最开始输入的字符串不接收文本类型的节点:pq('<div/>')
// 从$pq->getDocumentID()根据ID载入到文档: pq('<div/>', $pq->getDocumentID())
// 根据DOM节点的归属将同样的文档载入:pq('<div/>', DOMNode)
// 从phpQuery 对象载入文档: pq('<div/>', $pq)

2. 运行查询

// 根据最后一个选择的文档执行查询:pq('div.myClass')
// 根据$pq->getDocumentID()的ID从文档中进行查询:pq('div.myClass', $pq->getDocumentID())
// 在同样的文档上根据DOM节点的归属进行查询并且使用节点作为查询的根节点:pq('div.myClass', DOMNode)
// 在文档上使用phpQuery对象进行查询
// 同时使用对象的栈作为根节点进行查询: pq('div.myClass', $pq)

3. 使用phpQuery对象对DOM节点进行原型化操作

foreach(pq('li') as $li) // $li是纯DOM节点, 将它变为phpQuery对象: pq($li);

选择器

选择器是类似于jQuery接口的一个核心。大多数CSS3语法已经被采用(和jQuery保持同步)。

示例

pq(".class ul > li[rel='foo']:first:has(a)")->appendTo('.append-target-wrapper div')->...

基础

  • #id 根据给定的ID属性匹配单个元素。

  • element 根据给定的名称匹配所有符合的元素。
  • .class 根据给定的class匹配所有的元素。
  • * 选择所有元素。
  • selector1, selector2, selectorN 根据所有制定的选择器匹配结合结果。

层级

  • ancestor descendant 匹配由先祖指定的元素的后代指定的所有后代元素。

  • parent > child 匹配由父元素指定的子元素指定的所有子元素。
  • prev + next 根据指定的"next"和指定的"prev"匹配所有的下一个元素。
  • prev ~ siblings 匹配根据"prev" 元素的 所有相邻元素。

基础过滤

  • :first匹配第一个被选择的元素。

  • :last 匹配最后一个被选择的元素。
  • :not(selector) 匹配所有不是被选择的元素。
  • :even 匹配所有被选择的偶数元素,0索引。
  • :odd 匹配所有被选择的奇数元素,0索引。
  • :eq(index) 匹配等同于给定的索引的元素。
  • :gt(index) 匹配大于给定的索引的元素。
  • :lt(index) 匹配小于给定的索引的元素。
  • :header 匹配所有header元素,如h1,h2,h3等。
  • :animated 匹配正在进行动画效果的元素。

文本过滤

  • :contains(text) 匹配包含指定文本的元素。

  • :empty 匹配所有无子节点的元素(包括文本节点)。
  • :has(selector) 匹配至少包含一个对于给定选择器的元素。
  • :parent 匹配所有父元素 - 拥有子元素的,包括文本。

属性过滤

子元素过滤

表单

  • :input 匹配input, textarea, select和button元素。

  • :text 匹配所有类型为text的input元素。
  • :password 匹配所有类型为password的input元素。
  • :radio 匹配所有类型为radio的input元素。
  • :checkbox 匹配所有类型为checkbox的input元素。
  • :submit 匹配所有类型为submit的input元素。
  • :image 匹配所有类型为image的input元素。
  • :reset 匹配所有类型为reset的input元素。
  • :button 匹配所有类型为button的input元素和button元素。
  • :file 匹配所有类型为file的input元素。
  • :hidden 匹配所有类型为hidden的input元素或者其他hidden元素。

表单过滤

方法

示例

pq('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...

Attr

  • attr($name) 访问第一个给名称的元素的属性。这个方法可以很轻易地取得第一个匹配到的元素的属性值。如果这个元素没有对应名称的属性则返回undefined。

  • attr($properties) 对于所有匹配到的元素设置对应属性。
  • attr($key, $value) 对于匹配到的元素设置一个属性和对应值。
  • attr($key, $fn) 对于匹配到的元素设置一个属性和需要计算的值。
  • removeAttr($name) 对匹配到的元素移除给定名称的属性。

Class

HTML

  • html() 获取第一个匹配到的元素的html内容(innerHTML)。这个方法不适用于XML文本(但适用于XHTML。)

  • html($val) 对匹配到的元素设置html内容。这个方法不适用于XML文本(但适用于XHTML。)

Text

  • text() 获取匹配到的所有元素的文本内容。

  • text($val) 对匹配到的所有元素设置文本内容。

Value

  • val() 获取匹配到的第一个元素的value属性的值。

  • val($val) 对匹配到的元素设置value值。
  • val($val) 所有的Checks, selects, radio buttons, checkboxes,和select options都会设置相应给定的值。

phpQuery的更多相关文章

  1. Snoopy+phpquery采集demo

    用phpquery类,写了个采集的demo,以 某网贷平台的 一个列表为例,我们要采集该平台下面的 各平台名称,结构树如下 include 'phpQuery.php'; phpQuery::newD ...

  2. php+phpquery简易爬虫抓取京东商品分类

    这是一个简单的php加phpquery实现抓取京东商品分类页内容的简易爬虫.phpquery可以非常简单地帮助你抽取想要的html内容,phpquery和jquery非常类似,可以说是几乎一样:如果你 ...

  3. phpQuery—基于jQuery的PHP实现

    转载于:http://www.cnblogs.com/in-loading/archive/2012/04/11/2442697.html Query的选择器之强大是有目共睹的,phpQuery 让p ...

  4. curl模拟浏览器进行phpQuery抓取数据

    报Warning: file_get_contents(http://www.dianping.com/shop/8042874) [function.file-get-contents]: fail ...

  5. phpQuery用法

    了解phpQuery使用前了温习jquery.js的选择用法 jquery选择器,还有一个衍生产品QueryList 例: include 'phpQuery.php'; phpQuery::newD ...

  6. phpQuery轻松采集网页内容

    原文地址:phpQuery轻松采集网页内容作者:陌上花开 phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息.更有意思的是,它 ...

  7. 用phpQuery像jquery一样解析html代码

    简介 如何在php中方便地解析html代码,估计是每个phper都会遇到的问题.用phpQuery就可以让php处理html代码像jQuery一样方便. 项目地址:https://code.googl ...

  8. phpquery笔记

    下载phpquery包 require('phpQuery/phpQuery.php');//加载 for($i=1168;$i<=10000;$i++){ phpQuery::newDocum ...

  9. 使用phpQuery实现批量文件处理

    能够将置顶文夹下的指定类型文件进行处理 <?php header('Content-Type:text/html;Charset=utf-8'); include './phpQuery/php ...

  10. phpQuery 无法解析 html 结构

    有时候解析一段 HTML 代码时 phpQuery 无法解析原因: 可能是缺少类似下面的 meta 信息,在带解析的字符串任意位置添上即可 : <meta http-equiv="Co ...

随机推荐

  1. STM32—串口使用总结

    文章目录 一.仅向上位机打印调试信息 二.与上位机交互信息 三.作为驱动接口 四.结合DMA接收数据帧 在日常学习中,串口经常作为和上位机通信的接口,进行打印信息方便调试程序,有时也会作为模块的驱动接 ...

  2. Semaphore 的使用

    var workerSemphore = new Semaphore(0, 800000); var IsWorkThreadCreated = true; var workThread = new ...

  3. 【spring 注解驱动开发】Spring AOP原理

    尚学堂spring 注解驱动开发学习笔记之 - AOP原理 AOP原理: 1.AOP原理-AOP功能实现 2.AOP原理-@EnableAspectJAutoProxy 3.AOP原理-Annotat ...

  4. Ubuntu的build-essential有什么作用

    Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装.但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包.查看该软件包 ...

  5. CentOS 6.x 系统中安装原生 Hadoop 2

    2020年整理博客发现原文地址已经失效,推荐学习地址厦门大学数据库实验室 本教程适合于在 CentOS 6.x 系统中安装原生 Hadoop 2,适用于Hadoop 2.7.1, Hadoop 2.6 ...

  6. Dapper同时操作任意多张表的实现

    1:Dapper的查询帮助类,部分代码,其它新增更新删除可以自行扩展 using Microsoft.Extensions.Configuration; using System; using Sys ...

  7. 24点游戏(24 game)的C++编程求解实现

    什么是24点游戏 24点游戏,英文叫做24 game,是对给定的4个非负整数进行加减乘除运算,要求每个数都要被用到且仅用到一次,并得到最终的运算结果为24.比如3.8.3.8这四个数,可以找出唯一的一 ...

  8. MySQL-库表操作详述

    一.库操作 创建库 create database 库名(charset utf8 对库的编码进行设置,不写就用默认值) 库名可以由字母.数字.下划线.特殊字符,要区分大小写,唯一性,不能使用关键字, ...

  9. Spring笔记(3)

    一.JDBC Template基本使用 1.开发步骤 1.1直接使用template 导入spring-jdbc和spring-tx坐标 <!-- JDBC--> <dependen ...

  10. css 边框添加三角形指向,简单粗暴,易学易懂

    构建一个 div , class 随便命名 css 部分 class 名字 { position: relative; // 相对定位是重点 } class名字:before,class名字:afte ...