| 1 |
# Changelog |
| 2 |
All notable changes to this project will be documented in this file. |
| 3 |
|
| 4 |
The format is based on [](https://keepachangelog.com/en/1.0.0/Keep a Changelog](https://keepachangelog.com/en/1.0.0/](https://keepachangelog.com/en/1.0.0/). |
| 5 |
|
| 6 |
## [1.9.1] - 2019-10-20 |
| 7 |
### Fixed |
| 8 |
- Fixed broken "text" selectors [](https://sourceforge.net/p/simplehtmldom/bugs/175/#175](https://sourceforge.net/p/simplehtmldom/bugs/175/](https://sourceforge.net/p/simplehtmldom/bugs/175/) |
| 9 |
|
| 10 |
## [1.9] - 2019-05-30 |
| 11 |
### Added |
| 12 |
- Added unit test for bug reports |
| 13 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/153/#153](https://sourceforge.net/p/simplehtmldom/bugs/153/](https://sourceforge.net/p/simplehtmldom/bugs/153/) |
| 14 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/163/#163](https://sourceforge.net/p/simplehtmldom/bugs/163/](https://sourceforge.net/p/simplehtmldom/bugs/163/) |
| 15 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/166/#166](https://sourceforge.net/p/simplehtmldom/bugs/166/](https://sourceforge.net/p/simplehtmldom/bugs/166/) |
| 16 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/169/#169](https://sourceforge.net/p/simplehtmldom/bugs/169/](https://sourceforge.net/p/simplehtmldom/bugs/169/) |
| 17 |
- Added unit test for character sets UTF-8, CP1251 and CP1252 (#142) |
| 18 |
- Added support for meta charset to parse_charset |
| 19 |
- Added detection for CP1251 to parse_charset, using iconv |
| 20 |
- Added LICENSE file (MIT) to the project root |
| 21 |
- Added functions to `simple_html_dom_node` |
| 22 |
- `remove`: Removes the current node recursively from the DOM tree |
| 23 |
- `removeChild`: Removes a child node recursively from the DOM tree |
| 24 |
- `hasClass`: Checks if the current node has the specified class name |
| 25 |
- `addClass`: Adds one or more classes to the current node |
| 26 |
- `removeClass`: Removes one or more classes from the current node |
| 27 |
- `save`: Saves the current node to disk |
| 28 |
### Changed |
| 29 |
- Changed manual from custom implementation to MkDocs (https://www.mkdocs.org/) |
| 30 |
### Fixed |
| 31 |
- Fixed warning when trying to clear() the DOM on a null nodes list (#153) |
| 32 |
- Fixed missing whitespace when returning plaintext (#163) |
| 33 |
- Fixed broken detection of duplicate attributes (#166) |
| 34 |
- Fixed broken detection of CP1252 (ISO-8859-1) documents (#142) |
| 35 |
- Fixed error using next-sibling combinator ('E + F') on last child |
| 36 |
- Fixed selector parsing for attribute selectors ending on "s" or "i" (#169) |
| 37 |
|
| 38 |
## [1.8.1] - 2019-01-13 |
| 39 |
### Fixed |
| 40 |
- Fixed various bugs related to parsing classes and ids |
| 41 |
|
| 42 |
## [1.8] - 2019-01-13 |
| 43 |
### Added |
| 44 |
- Added documentation for `simple_html_dom_node::find` |
| 45 |
- Added documentation for `simple_html_dom_node::parse_selector` |
| 46 |
- Added documentation for `simple_html_dom_node::seek` |
| 47 |
- Added documentation for `simple_html_dom_node::match` |
| 48 |
- Added unit tests for bug reports |
| 49 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/62/#62](https://sourceforge.net/p/simplehtmldom/bugs/62/](https://sourceforge.net/p/simplehtmldom/bugs/62/) |
| 50 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/79/#79](https://sourceforge.net/p/simplehtmldom/bugs/79/](https://sourceforge.net/p/simplehtmldom/bugs/79/) |
| 51 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/144/#144](https://sourceforge.net/p/simplehtmldom/bugs/144/](https://sourceforge.net/p/simplehtmldom/bugs/144/) |
| 52 |
- Added unit tests for CSS selectors |
| 53 |
- Added ability to define constants before simple_html_dom does |
| 54 |
- 'DEFAULT_TARGET_CHARSET' |
| 55 |
- 'DEFAULT_BR_TEXT' |
| 56 |
- 'DEFAULT_SPAN_TEXT' |
| 57 |
- 'MAX_FILE_SIZE' |
| 58 |
- Added support for CSS combinators |
| 59 |
- Added support for Child Combinator (`>`) |
| 60 |
- Added support for Next Sibling Combinator (`+`) |
| 61 |
- Added support for Subsequent Sibling Combinator (`~`) |
| 62 |
- Added support for multiclass selectors (`.class.class.class`) |
| 63 |
- Added support for multiattribute selectors (`[attr1][attr2][attribute3]`) |
| 64 |
- Added support for attribute selectors |
| 65 |
- Added support for pipe selectors (`|=`) |
| 66 |
- Added support for tilde selectors (`~=`) |
| 67 |
- Added support for case sensitivity selectors (`i` and `s`) |
| 68 |
- Added unit tests for PHP compatibility to PHP 5.6+ |
| 69 |
- Added coding standard using PHP_CodeSniffer |
| 70 |
### Changed |
| 71 |
- Removed automatic filtering of 'tbody' selectors (#79) |
| 72 |
> Remove 'tbody' from all selectors to maintain the previous state! |
| 73 |
- Coding standard using PHP_CodeSniffer |
| 74 |
### Fixed |
| 75 |
- Fixed broken CSS selector attributes with value "0" (#62) |
| 76 |
- Fixed broken simple_html_dom::load_file |
| 77 |
- Fixed forward slashes in CSS selector breaks value matching using '*=' (#144) |
| 78 |
- Fixed Universal Selectors |
| 79 |
|
| 80 |
## [1.7] - 2018-12-10 |
| 81 |
### Added |
| 82 |
- Added code documentation to improve readability |
| 83 |
- Added unit tests for `simple_html_dom::$self_closing_tags` |
| 84 |
- Added unit tests for `simple_html_dom::$optional_closing_tags` |
| 85 |
- Added unit tests for bug reports |
| 86 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/56/#56](https://sourceforge.net/p/simplehtmldom/bugs/56/](https://sourceforge.net/p/simplehtmldom/bugs/56/) |
| 87 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/97/#97](https://sourceforge.net/p/simplehtmldom/bugs/97/](https://sourceforge.net/p/simplehtmldom/bugs/97/) |
| 88 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/116/#116](https://sourceforge.net/p/simplehtmldom/bugs/116/](https://sourceforge.net/p/simplehtmldom/bugs/116/) |
| 89 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/127/#121](https://sourceforge.net/p/simplehtmldom/bugs/127/](https://sourceforge.net/p/simplehtmldom/bugs/127/) |
| 90 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/127/#127](https://sourceforge.net/p/simplehtmldom/bugs/127/](https://sourceforge.net/p/simplehtmldom/bugs/127/) |
| 91 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/154/#154](https://sourceforge.net/p/simplehtmldom/bugs/154/](https://sourceforge.net/p/simplehtmldom/bugs/154/) |
| 92 |
- Added test for bug [](https://sourceforge.net/p/simplehtmldom/bugs/160/#160](https://sourceforge.net/p/simplehtmldom/bugs/160/](https://sourceforge.net/p/simplehtmldom/bugs/160/) |
| 93 |
- Added unit tests for memory management of the parser |
| 94 |
- Added bit flags to `simple_html_dom::load()` |
| 95 |
- Added bit flag `HDOM_SMARTY_AS_TEXT` to optionally filter Smarty scripts (#154)\ |
| 96 |
**Note**: Smarty scripts are no longer filtered by default!\ |
| 97 |
- Added build script to automate releases |
| 98 |
- Added support for attributes without whitespace to separate them |
| 99 |
### Changed |
| 100 |
- Improved documentation and readability for `$self_closing_tags` |
| 101 |
- Improved documentation and readability for `$block_tags` |
| 102 |
- Improved documentation and readability for `$optional_closing_tags` |
| 103 |
- Updated list of `simple_html_dom::$self_closing_tags` |
| 104 |
- Removed 'spacer' (obsolete) |
| 105 |
- Added 'area' |
| 106 |
- Added 'col' |
| 107 |
- Added 'meta' |
| 108 |
- Added 'param' |
| 109 |
- Added 'source' |
| 110 |
- Added 'track' |
| 111 |
- Added 'wbr' |
| 112 |
- Updated list of `simple_html_dom::$optional_closing_tags` |
| 113 |
- Removed "nobr" (obsolete) |
| 114 |
- Added 'th' as closable element to 'td' |
| 115 |
- Added 'td' as closable element to 'th' |
| 116 |
- Added 'optgroup' with 'optgroup' and 'option' as closable elements |
| 117 |
- Added 'optgroup' as closable element to 'option' |
| 118 |
- Added 'rp' with 'rp' and 'rt' as closable elements |
| 119 |
- Added 'rt' with 'rt' and 'rp' as closable elements |
| 120 |
- Clarified meaning of `simple_html_dom->parent` |
| 121 |
- Changed default `$offset` for `file_get_html()` from -1 to 0 (#161) |
| 122 |
- Changed `simple_html_dom::load()` to remove script tags before replacing newline characters |
| 123 |
- `simple_html_dom_node::text()` no longer adds whitespace to top level span elements (only to sub-elements) |
| 124 |
- `simple_html_dom_node::text()` adds blank lines between paragraphs |
| 125 |
- Normalized line endings in the repository to LF via `.gitattributes` |
| 126 |
- Improved performance of `simple_html_dom::parse_charset()` by approximately 25% |
| 127 |
- Improved performance of `simple_html_dom::parse()` by approximately 10% |
| 128 |
### Deprecated |
| 129 |
- `str_get_html()` is deprecated and should be replaced by `new simple_html_dom()` |
| 130 |
### Removed |
| 131 |
- Removed protected function `simple_html_dom::copy_until_char_escaped()` |
| 132 |
### Fixed |
| 133 |
- Fixed compatibility issues with PHP 7.3 |
| 134 |
- Fixed typo (#147) |
| 135 |
- Fixed handling of incorrectly escaped text (#160) |
| 136 |
- Restore functionality of `$maxLen` in `file_get_html()` |
| 137 |
- Fixed load_file breaks if an error ocurred in another script |
| 138 |
|
| 139 |
## [1.6] - 2014-05-28 |
| 140 |
### Added |
| 141 |
- Added some ability to insert and create nodes |
| 142 |
- Add ability to search the "noise" array |
| 143 |
|
| 144 |
## [1.5] - 2012-09-10 |
| 145 |
### Added |
| 146 |
- Added flag: LOCK_EX while calling "file_put_contents()" |
| 147 |
- Added support for detecting the source html character set. This is used to convert characters when plaintext is requested. |
| 148 |
- Other little fixes and features, too numerous to categorize |
| 149 |
### Changed |
| 150 |
- Error of "file_get_contents()" will be thrown as an exception |
| 151 |
### Fixed |
| 152 |
- Fixed the typo of "token_blank_t" |
| 153 |
- Memory leak fixed |
| 154 |
|
| 155 |
## [1.11] - 2008-12-14 |
| 156 |
### Added |
| 157 |
- Supports xpath generated from Firebug |
| 158 |
- New method "dump" of "simple_html_dom_node" |
| 159 |
- New attribute "xmltext" of "simple_html_dom_node" |
| 160 |
### Changed |
| 161 |
- Remove preg_quote on selector match function: `[attribute*=value]` |
| 162 |
- Element "Comment" will treat as children |
| 163 |
### Fixed |
| 164 |
- Fixed the problem with `<pre>` |
| 165 |
- Fixed bug #2207477 (does not load some pages properly) |
| 166 |
- Fixed bug #2315853 (Error with character after < sign) |
| 167 |
|
| 168 |
## [1.10] - 2008-10-25 |
| 169 |
### Changed |
| 170 |
- Negative indexes supports of "find" method, thanks for Vadim Voituk |
| 171 |
- Constructor with automatically load contents either text or file/url, thanks for Antcs |
| 172 |
- Fully supports wildcard in selectors |
| 173 |
### Fixed |
| 174 |
- Fixed bug of confusing by the < symbol inside the text |
| 175 |
- Fixed bug of dash in selectors |
| 176 |
- Fixed bug of `<nobr>` |
| 177 |
- Fixed bug #2155883 (Nested List Parses Incorrectly) |
| 178 |
- Fixed bug #2155113 (error with unclosed html tags) |
| 179 |
|
| 180 |
## [1.00] - 2008-09-05 |
| 181 |
### Added |
| 182 |
- New method "getAllAttributes" of "simple_html_dom_node" |
| 183 |
- Supports full javascript string in selector: `$e->find("a[onclick=alert('hello')]")` |
| 184 |
### Changed |
| 185 |
- Changed selector "*=" to case-insentive |
| 186 |
### Fixed |
| 187 |
- Fixed the bug of selector in some critical conditions |
| 188 |
- Fixed the bug of striping php tags |
| 189 |
- Fixed the bug of remove_noise() |
| 190 |
- Fixed the bug of noise in attributes |
| 191 |
|
| 192 |
## [0.99] - 2008-08-03 |
| 193 |
### Changed |
| 194 |
- Performance tuning (boost 10%) |
| 195 |
- Memory requirement reduced by 25% |
| 196 |
- Changed function name from "file_get_dom()" to "file_get_html()" |
| 197 |
- Changed function name from "str_get_dom()" to "str_get_html()" |
| 198 |
### Fixed |
| 199 |
- Fixed bug #2011286 (Error with unclosed html tags) |
| 200 |
- Fixed bug #2012551 (Error parsing divs) |
| 201 |
- Fixed bug #2020924 (Error for missed tag) |
| 202 |
- Fixed bug (problem with `<body>` tag's innertext) |
| 203 |
|
| 204 |
## [0.98] - 2008-06-24 |
| 205 |
### Added |
| 206 |
- Supports "multiple class" selector feature: `<div class="a b c"></div>` |
| 207 |
- New "callback function" feature |
| 208 |
- New "multiple selectors" feature: $dom->find('p,a,b') |
| 209 |
- New examples |
| 210 |
- Supports extract contents from HTML features: $dom->plaintext |
| 211 |
### Changed |
| 212 |
- Performance tuning (boost 20%) |
| 213 |
- Changed simple_html_dom_node method name from "text()" to "makeup()" |
| 214 |
### Fixed |
| 215 |
- Fixed the bug of $dom->clear() |
| 216 |
- Fixed the bug of text nodes' innertext |
| 217 |
- Fixed the bug of comment nodes' innertext |
| 218 |
- Fixed the bug of decendent selector with optional tags |
| 219 |
|
| 220 |
## [0.97] - 2008-05-09 |
| 221 |
### Added |
| 222 |
- New node type "comment" (eg. $dom->find('comment')) |
| 223 |
- Add self-closing tags: 'base', 'spacer' |
| 224 |
- New example "simple_html_dom_utility.php" |
| 225 |
### Changed |
| 226 |
- File and class name changed (html_dom_parser->simple_html_dom) |
| 227 |
### Removed |
| 228 |
- ($dom->save_file) will not support anymore |
| 229 |
- Remove example "example_customize_parser.php" |
| 230 |
### Fixed |
| 231 |
- Fixed the bug of outertext (th) |
| 232 |
- Fixed the bug of regular expression escaping chars ($dom->find) |
| 233 |
- Fixed the bug while line-breaker and "\t" in tags |
| 234 |
|
| 235 |
## [0.96] - 2008-04-27 |
| 236 |
### Added |
| 237 |
- Reference section in manual |
| 238 |
- Added traverse section in manual |
| 239 |
- Added the solution while server behind proxy in FAQ (Thanks to Yousuke Shaggy) |
| 240 |
- New method to remove attribute. |
| 241 |
- New DOM operations(first_child, last_child, next_sibling, previous_sibling) (Request #1936000) |
| 242 |
### Changed |
| 243 |
- Now file_get_dom supports full file_get_contents parameters |
| 244 |
### Fixed |
| 245 |
- Fixed the bug of self-closing tags in the end of file |
| 246 |
- Fixed the bug of blanks in the end of tag |
| 247 |
- Fixed some typo of testcase |
| 248 |
|
| 249 |
## [0.95] - 2008-04-13 |
| 250 |
### Added |
| 251 |
- Supports tag name with namespace |
| 252 |
### Changed |
| 253 |
- New attribute filters (Thanks to Yousuke Kumakura) |
| 254 |
- Refine structure of testcase |
| 255 |
### Fixed |
| 256 |
- Fix the bug of optional-closing tags |
| 257 |
- Fix the bug of parsing the line break next to the tag's name |
| 258 |
|
| 259 |
## [0.94] - 2008-04-06 |
| 260 |
### Added |
| 261 |
- Add FAQ section in manual |
| 262 |
### Fixed |
| 263 |
- Fixed infinity loop while the source content is BAD HTML |
| 264 |
- Fixed the bug of adding new attributes to self closing tags |
| 265 |
- Fixed the bug of customize parser without $dom->remove_noise() |