'', 'Headers' => '', 'Body' => ''); $headers = Array(); $lines = explode("\n", $text); // "\n" is lost in process foreach ($lines as $line_id => $line) { if (strlen(trim($line)) == 0 || ($line == '.')) { break; } $parts = explode(':', $line, 2); if (strtolower($parts[0]) == 'subject') { $ret['Subject'] = trim($parts[1]); } else { $headers[] = $line; } } $ret['Headers'] = $headers ? implode("\n", $headers) : null; // it's null field $lines = array_slice($lines, $line_id + 1); // add "\n", that was lost before $ret['Body'] = implode("\n", $lines); return $ret; } /** * Prepares email event content for language pack export * * @param Array $fields_hash * @return string */ function buildTemplate($fields_hash) { if (!implode('', $fields_hash)) { return ''; } $ret = array_key_exists('Headers', $fields_hash) ? $fields_hash['Headers'] : ''; if ($ret) { $ret .= "\n"; } $ret = $this->_removeTrailingCRLF($ret); $ret .= 'Subject: ' . $fields_hash['Subject'] . "\n\n"; $ret .= $fields_hash['Body']; return $ret; } /** * Remove trailing CR/LF chars from string * * @param string $string * @return string */ function _removeTrailingCRLF($string) { return preg_replace('/(\n|\r)+/',"\\1",$string); } }