andikamc/simple-html-dom

dev-master 2020-02-28 03:55 UTC

This package is auto-updated.

Last update: 2024-09-28 14:37:58 UTC


README

本项目所有显著变更都将记录在此文件中。

格式基于 Keep a Changelog

[1.9.1] - 2019-10-20

修复

  • 修复了损坏的 "text" 选择器 #175

[1.9] - 2019-05-30

新增

  • 添加了针对问题报告的单元测试
    • 为问题 #153 添加了测试
    • 为问题 #163 添加了测试
    • 为问题 #166 添加了测试
    • 为问题 #169 添加了测试
  • 为字符集 UTF-8、CP1251 和 CP1252 添加了单元测试 (#142)
  • 为 parse_charset 添加了对 meta charset 的支持
  • 使用 iconv 为 parse_charset 添加了对 CP1251 的检测
  • 在项目根目录中添加了 LICENSE 文件(MIT)
  • simple_html_dom_node 添加了函数
    • remove:递归地从 DOM 树中删除当前节点
    • removeChild:递归地从 DOM 树中删除子节点
    • hasClass:检查当前节点是否有指定的类名
    • addClass:向当前节点添加一个或多个类
    • removeClass:从当前节点删除一个或多个类
    • save:将当前节点保存到磁盘

变更

  • 将手册从自定义实现更改为 MkDocs(《https://mkdocs.cn/》)

修复

  • 修复了尝试在 null 节点列表上调用 clear() 时的警告 (#153)
  • 修复了返回纯文本时的缺失空格 (#163)
  • 修复了重复属性检测错误 (#166)
  • 修复了检测 CP1252 (ISO-8859-1) 文档的错误 (#142)
  • 修复了在最后一个子节点上使用 next-sibling 组合器 ('E + F') 的错误
  • 修复了以 "s" 或 "i" 结尾的属性选择器的选择器解析错误 (#169)

[1.8.1] - 2019-01-13

修复

  • 修复了与解析类和 ID 相关的多个错误

[1.8] - 2019-01-13

新增

  • simple_html_dom_node::find 添加了文档
  • simple_html_dom_node::parse_selector 添加了文档
  • simple_html_dom_node::seek 添加了文档
  • simple_html_dom_node::match 添加了文档
  • 为问题报告添加了单元测试
    • 为问题 #62 添加了测试
    • 为问题 #79 添加了测试
    • 为问题 #144 添加了测试
  • 为 CSS 选择器添加了单元测试
  • 在 simple_html_dom 之前定义了常数
    • 'DEFAULT_TARGET_CHARSET'
    • 'DEFAULT_BR_TEXT'
    • 'DEFAULT_SPAN_TEXT'
    • 'MAX_FILE_SIZE'
  • 添加了对 CSS 组合器的支持
    • 添加了对 Child Combinator (>) 的支持
    • 添加了对 Next Sibling Combinator (+) 的支持
    • 添加了对 Subsequent Sibling Combinator (~) 的支持
  • 添加了对多类选择器的支持 (.class.class.class)
  • 添加了对多属性选择器的支持 ([attr1][attr2][attribute3])
  • 添加了对属性选择器的支持
    • 添加了对管道选择器 (|=) 的支持
    • 增加了对波浪线选择器(~=)的支持
    • 增加了对大小写敏感选择器的支持(is
  • 为 PHP 5.6+ 增加了 PHP 兼容性单元测试
  • 使用 PHP_CodeSniffer 增加了编码标准

变更

  • 移除了自动过滤 'tbody' 选择器(#79)

    从所有选择器中移除 'tbody' 以保持之前的状态!

  • 使用 PHP_CodeSniffer 的编码标准

修复

  • 修复了带有值 "0" 的损坏的 CSS 选择器属性(#62)
  • 修复了 broken simple_html_dom::load_file
  • 修复了 CSS 选择器中的正斜杠导致使用 '*=' 时值匹配中断的问题(#144)
  • 修复了通用选择器

[1.7] - 2018-12-10

新增

  • 增加了代码文档以改善可读性
  • simple_html_dom::$self_closing_tags 增加了单元测试
  • simple_html_dom::$optional_closing_tags 增加了单元测试
  • 为问题报告添加了单元测试
    • 为 bug #56 增加了测试
    • 为 bug #97 增加了测试
    • 为 bug #116 增加了测试
    • 为 bug #121 增加了测试
    • 为 bug #127 增加了测试
    • 为 bug #154 增加了测试
    • 为 bug #160 增加了测试
  • 为解析器的内存管理增加了单元测试
  • simple_html_dom::load() 增加了位标志
    • 为可选地过滤 Smarty 脚本增加了位标志 HDOM_SMARTY_AS_TEXT(#154)
      注意:Smarty 脚本不再默认过滤!
  • 增加了构建脚本来自动化发布
  • 增加了对不带空格分隔的属性的支持

变更

  • 改进了 $self_closing_tags 的文档和可读性
  • 改进了 $block_tags 的文档和可读性
  • 改进了 $optional_closing_tags 的文档和可读性
  • 更新了 simple_html_dom::$self_closing_tags 的列表
    • 移除了 'spacer'(已过时)
    • 增加了 'area'
    • 增加了 'col'
    • 增加了 'meta'
    • 增加了 'param'
    • 增加了 'source'
    • 增加了 'track'
    • 增加了 'wbr'
  • 更新了 simple_html_dom::$optional_closing_tags 的列表
    • 移除了 "nobr"(已过时)
    • 将 'th' 作为可关闭元素添加到 'td' 中
    • 将 'td' 作为可关闭元素添加到 'th' 中
    • 为 'optgroup' 和 'option' 添加了 'optgroup' 作为可关闭元素
    • 为 'option' 添加了 'optgroup' 作为可关闭元素
    • 为 'rp' 和 'rt' 添加了 'rp' 作为可关闭元素
    • 为 'rt' 和 'rp' 添加了 'rt' 作为可关闭元素
  • 明确了 simple_html_dom->parent 的意义
  • file_get_html() 的默认 $offset 从 -1 更改为 0(#161)
  • 修改了 simple_html_dom::load() 以在替换换行符之前移除脚本标签
  • simple_html_dom_node::text() 不再向顶层 span 元素添加空白(仅添加到子元素)
  • simple_html_dom_node::text() 在段落之间添加空白行
  • 通过 .gitattributes 将仓库中的换行符规范化为 LF
  • 通过约 25% 提高了 simple_html_dom::parse_charset() 的性能
  • 通过约 10% 提高了 simple_html_dom::parse() 的性能

已弃用

  • str_get_html() 已弃用,应替换为 new simple_html_dom()

已移除

  • 移除了受保护的函数 simple_html_dom::copy_until_char_escaped()

修复

  • 修复了与 PHP 7.3 的兼容性问题
  • 修复了拼写错误(#147)
  • 修复了处理错误转义文本的问题(#160)
  • file_get_html() 中恢复了 $maxLen 的功能
  • 修复了在另一个脚本中发生错误时 load_file 断开连接的问题

[1.6] - 2014-05-28

新增

  • 增加了一些插入和创建节点的能力
  • 增加了搜索 "noise" 数组的能力

[1.5] - 2012-09-10

新增

  • 在调用 "file_put_contents()" 时增加了标志:LOCK_EX
  • 增加了检测源HTML字符集的支持。这用于在请求纯文本时转换字符。
  • 其他小修复和功能,太多无法分类

变更

  • "file_get_contents()"的错误将抛出异常

修复

  • 修复了"token_blank_t"的拼写错误
  • 修复了内存泄漏问题

[1.11] - 2008-12-14

新增

  • 支持由Firebug生成的xpath
  • 新增"simple_html_dom_node"的"dump"方法
  • 新增"simple_html_dom_node"的"xmltext"属性

变更

  • 移除选择器匹配函数中的preg_quote:[attribute*=value]
  • 将"Comment"元素视为子元素

修复

  • 修复了<pre>的问题
  • 修复了bug #2207477(某些页面加载不正确)
  • 修复了bug #2315853(<符号后的字符错误)

[1.10] - 2008-10-25

变更

  • "find"方法的负索引支持,感谢Vadim Voituk
  • 自动加载内容(文本或文件/URL)的构造函数,感谢Antcs
  • 完全支持选择器中的通配符

修复

  • 修复了文本中的<符号引起的混淆问题
  • 修复了选择器中的连字符问题
  • 修复了<nobr>的问题
  • 修复了bug #2155883(嵌套列表解析错误)
  • 修复了bug #2155113(未关闭的HTML标签错误)

[1.00] - 2008-09-05

新增

  • 新增"simple_html_dom_node"的"getAllAttributes"方法
  • 支持选择器中的完整JavaScript字符串:$e->find("a[onclick=alert('hello')]")

变更

  • 将选择器"*="改为不区分大小写

修复

  • 修复了某些关键条件下的选择器错误
  • 修复了去除PHP标签的错误
  • 修复了remove_noise()的错误
  • 修复了属性中的噪音错误

[0.99] - 2008-08-03

变更

  • 性能调整(提升10%)
  • 内存需求降低25%
  • 将函数名从"file_get_dom()"更改为"file_get_html()"
  • 将函数名从"str_get_dom()"更改为"str_get_html()"

修复

  • 修复了bug #2011286(未关闭的HTML标签错误)
  • 修复了bug #2012551(解析div的错误)
  • 修复了bug #2020924(遗漏标签错误)
  • 修复了<body>标签的innertext的问题

[0.98] - 2008-06-24

新增

  • 支持"多个类"选择器功能:<div class="a b c"></div>
  • 新增"回调函数"功能
  • 新增"多个选择器"功能:$dom->find('p,a,b')
  • 新增示例
  • 支持从HTML中提取内容的功能:$dom->plaintext

变更

  • 性能调整(提升20%)
  • 将simple_html_dom_node方法名从"text()"更改为"makeup()"

修复

  • 修复了$dom->clear()的错误
  • 修复了文本节点的innertext错误
  • 修复了注释节点的innertext错误
  • 修复了可选标签的子选择器错误

[0.97] - 2008-05-09

新增

  • 新增节点类型"comment"(例如$dom->find('comment'))
  • 添加自闭合标签:'base', 'spacer'
  • 新增示例"simple_html_dom_utility.php"

变更

  • 文件和类名更改(html_dom_parser->simple_html_dom)

已移除

  • ($dom->save_file)将不再支持
  • 删除示例"example_customize_parser.php"

修复

  • 修复了outertext(th)的错误
  • 修复了正则表达式转义字符的错误($dom->find)
  • 修复了标签中的换行符和"\t"的错误

[0.96] - 2008-04-27

新增

  • 手册中的参考部分
  • 在手册中添加了遍历部分
  • 在FAQ中添加了服务器位于代理后的解决方案(感谢Yousuke Shaggy)
  • 新增删除属性的方法
  • 新增DOM操作(first_child, last_child, next_sibling, previous_sibling)(请求#1936000)

变更

  • 现在file_get_dom支持完整的file_get_contents参数

修复

  • 修复了文件末尾自闭合标签的错误
  • 修复了标签末尾空白字符的错误
  • 修复了测试用例中的某些拼写错误

[0.95] - 2008-04-13

新增

  • 支持带有命名空间的标签名

变更

  • 新增属性过滤器(感谢Yousuke Kumakura)
  • 精炼测试用例的结构

修复

  • 修复了可选闭合标签的错误
  • 修复了解析标签名称旁边的换行符的错误

[0.94] - 2008-04-06

新增

  • 在手册中添加FAQ部分

修复

  • 修复了源内容是不良HTML时的无限循环问题
  • 修复了向自闭合标签添加新属性的错误
  • 修复了未调用$dom->remove_noise()的自定义解析器中的错误