Fix parsing invalid HTML messages with BOM after <!DOCTYPE> (#1490291)
| | |
| | | - Fix so "over quota" errors are displayed also in message compose page |
| | | - Fix duplicate entries supression in autocomplete result (#1490290) |
| | | - Fix "Non-static method PEAR::isError() should not be called statically" errors (#1490281) |
| | | - Fix parsing invalid HTML messages with BOM after <!DOCTYPE> (#1490291) |
| | | |
| | | RELEASE 1.1.0 |
| | | ------------- |
| | |
| | | { |
| | | // special replacements (not properly handled by washtml class) |
| | | $html_search = array( |
| | | '/(<\/nobr>)(\s+)(<nobr>)/i', // space(s) between <NOBR> |
| | | '/<title[^>]*>[^<]*<\/title>/i', // PHP bug #32547 workaround: remove title tag |
| | | '/^(\0\0\xFE\xFF|\xFF\xFE\0\0|\xFE\xFF|\xFF\xFE|\xEF\xBB\xBF)/', // byte-order mark (only outlook?) |
| | | '/<html\s[^>]+>/i', // washtml/DOMDocument cannot handle xml namespaces |
| | | // space(s) between <NOBR> |
| | | '/(<\/nobr>)(\s+)(<nobr>)/i', |
| | | // PHP bug #32547 workaround: remove title tag |
| | | '/<title[^>]*>[^<]*<\/title>/i', |
| | | // remove <!doctype> before BOM (#1490291) |
| | | '/<\!doctype[^>]+>[^<]*/im', |
| | | // byte-order mark (only outlook?) |
| | | '/^(\0\0\xFE\xFF|\xFF\xFE\0\0|\xFE\xFF|\xFF\xFE|\xEF\xBB\xBF)/', |
| | | // washtml/DOMDocument cannot handle xml namespaces |
| | | '/<html\s[^>]+>/i', |
| | | ); |
| | | |
| | | $html_replace = array( |
| | | '\\1'.' '.'\\3', |
| | | '', |
| | | '', |
| | | '', |
| | | '<html>', |
| | | ); |
| | | $html = preg_replace($html_search, $html_replace, trim($html)); |