| | |
| | | <?php |
| | | |
| | | /** |
| | | /* |
| | | +-----------------------------------------------------------------------+ |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2008-2012, The Roundcube Dev Team | |
| | |
| | | '/<script[^>]*>.*?<\/script>/i', // <script>s -- which strip_tags supposedly has problems with |
| | | '/<style[^>]*>.*?<\/style>/i', // <style>s -- which strip_tags supposedly has problems with |
| | | '/<p[^>]*>/i', // <P> |
| | | '/<br[^>]*>/i', // <br> |
| | | '/<br[^>]*>\s*/i', // <br> |
| | | '/<i[^>]*>(.*?)<\/i>/i', // <i> |
| | | '/<em[^>]*>(.*?)<\/em>/i', // <em> |
| | | '/(<ul[^>]*>|<\/ul>)/i', // <ul> and </ul> |
| | |
| | | // Variables used for building the link list |
| | | $this->_link_list = array(); |
| | | |
| | | $text = trim(stripslashes($this->html)); |
| | | $text = $this->html; |
| | | |
| | | // Convert HTML to TXT |
| | | $this->_converter($text); |
| | |
| | | // Replace known html entities |
| | | $text = html_entity_decode($text, ENT_QUOTES, $this->charset); |
| | | |
| | | // Replace unicode nbsp to regular spaces |
| | | $text = preg_replace('/\xC2\xA0/', ' ', $text); |
| | | |
| | | // Remove unknown/unhandled entities (this cannot be done in search-and-replace block) |
| | | $text = preg_replace('/&([a-zA-Z0-9]{2,6}|#[0-9]{2,4});/', '', $text); |
| | | |
| | |
| | | * @param string $link URL of the link |
| | | * @param string $display Part of the text to associate number with |
| | | */ |
| | | protected function _build_link_list( $link, $display ) |
| | | protected function _build_link_list($link, $display) |
| | | { |
| | | if (!$this->_do_links || empty($link)) { |
| | | return $display; |
| | |
| | | |
| | | // Ignored link types |
| | | if (preg_match('!^(javascript:|mailto:|#)!i', $link)) { |
| | | return $display; |
| | | } |
| | | |
| | | // skip links with href == content (#1490434) |
| | | if ($link === $display) { |
| | | return $display; |
| | | } |
| | | |
| | |
| | | |
| | | break; |
| | | } |
| | | // abort on invalid tag structure (e.g. no closing tag found) |
| | | else { |
| | | break; |
| | | } |
| | | } |
| | | while ($end || $next); |
| | | } |