From e4a4ca19480690193e36e14ef6b9d592e73e9e9c Mon Sep 17 00:00:00 2001 From: alecpl Date: Thu, 24 Nov 2011 14:51:43 +0000 Subject: - Performance improvements --- program/include/rcube_imap.php | 8 +++++--- program/include/rcube_template.php | 6 +++++- program/steps/mail/func.inc | 8 +++----- 3 files changed, 13 insertions(+), 9 deletions(-) (limited to 'program') diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index a0a5f8189..50656f28c 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -2416,10 +2416,12 @@ class rcube_imap // convert charset (if text or message part) if ($body && preg_match('/^(text|message)$/', $o_part->ctype_primary)) { - // Remove NULL characters (#1486189) - $body = str_replace("\x00", '', $body); + // Remove NULL characters if any (#1486189) + if (strpos($body, "\x00") !== false) { + $body = str_replace("\x00", '', $body); + } - if (!$skip_charset_conv) { + if (!$skip_charset_conv) { if (!$o_part->charset || strtoupper($o_part->charset) == 'US-ASCII') { // try to extract charset information from HTML meta tag (#1488125) if ($o_part->ctype_secondary == 'html' && preg_match('/]+charset=([a-z0-9-_]+)/i', $body, $m)) diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index ea221767c..df10ac116 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -434,7 +434,11 @@ class rcube_template extends rcube_html_page // trigger generic hook where plugins can put additional content to the page $hook = $this->app->plugins->exec_hook("render_page", array('template' => $realname, 'content' => $output)); - $output = $this->parse_with_globals($hook['content']); + // save some memory + $output = $hook['content']; + unset($hook['content']); + + $output = $this->parse_with_globals($output); // make sure all
tags have a valid request token $output = preg_replace_callback('/]+)>/Ui', array($this, 'alter_form_tag'), $output); diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index a331da284..22ad7d562 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -1092,20 +1092,18 @@ function rcmail_resolve_base($body) function rcmail_html4inline($body, $container_id, $body_id='', &$attributes=null) { $last_style_pos = 0; - $body_lc = strtolower($body); $cont_id = $container_id.($body_id ? ' div.'.$body_id : ''); // find STYLE tags - while (($pos = strpos($body_lc, '', $pos))) + while (($pos = stripos($body, '', $pos))) { - $pos = strpos($body_lc, '>', $pos)+1; + $pos = strpos($body, '>', $pos)+1; // replace all css definitions with #container [def] $styles = rcmail_mod_css_styles( substr($body, $pos, $pos2-$pos), $cont_id); - $body = substr($body, 0, $pos) . $styles . substr($body, $pos2); - $body_lc = strtolower($body); + $body = substr_replace($body, $styles, $pos, $pos2-$pos); $last_style_pos = $pos2; } -- cgit v1.2.3