function drupal_wrap_mail
drupal_wrap_mail($text, $indent = '')
Performs format=flowed soft wrapping for mail (RFC 3676).
We use delsp=yes wrapping, but only break non-spaced languages when absolutely necessary to avoid compatibility issues.
We deliberately use LF rather than CRLF, see drupal_mail().
Parameters
string $text: The plain text to process.
string $indent (optional): A string to indent the text with. Only '>' characters are repeated on subsequent wrapped lines. Others are replaced by spaces.
Return value
string The content of the email as a string with formatting applied.
File
- includes/mail.inc, line 351
- API functions for processing and sending e-mail.
Code
function drupal_wrap_mail($text, $indent = '') { // Convert CRLF into LF. $text = str_replace("\r", '', $text); // See if soft-wrapping is allowed. $clean_indent = _drupal_html_to_text_clean($indent); $soft = strpos($clean_indent, ' ') === FALSE; // Check if the string has line breaks. if (strpos($text, "\n") !== FALSE) { // Remove trailing spaces to make existing breaks hard, but leave signature // marker untouched (RFC 3676, Section 4.3). $text = preg_replace('/(?(?<!^--) +\n| +\n)/m', "\n", $text); // Wrap each line at the needed width. $lines = explode("\n", $text); array_walk($lines, '_drupal_wrap_mail_line', array('soft' => $soft, 'length' => strlen($indent))); $text = implode("\n", $lines); } else { // Wrap this line. _drupal_wrap_mail_line($text, 0, array('soft' => $soft, 'length' => strlen($indent))); } // Empty lines with nothing but spaces. $text = preg_replace('/^ +\n/m', "\n", $text); // Space-stuff special lines. $text = preg_replace('/^(>| |From)/m', ' $1', $text); // Apply indentation. We only include non-'>' indentation on the first line. $text = $indent . substr(preg_replace('/^/m', $clean_indent, $text), strlen($indent)); return $text; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!mail.inc/function/drupal_wrap_mail/7.x