note 60283 added to function.mb-encode-mimeheader

From: Date: Mon, 02 Jan 2006 01:58:23 +0000
Subject: note 60283 added to function.mb-encode-mimeheader
Groups: php.notes 
Request: Send a blank email to php-notes+get-101094@lists.php.net to get a copy of this message
If mb_ version doesn't work for you in MIME-B mode: function encode_mimeheader($string, $charset=null, $linefeed="\r\n") { if (!$charset) $charset = mb_internal_encoding(); $start = "=?$charset?B?"; $end = "?="; $encoded = ''; /* Each line must have length <= 75, including $start and $end */ $length = 75 - strlen($start) - strlen($end); /* Average multi-byte ratio */ $ratio = mb_strlen($string, $charset) / strlen($string); /* Base64 has a 4:3 ratio */ $magic = $avglength = floor(3 * $length * $ratio / 4); for ($i=0; $i <= mb_strlen($string, $charset); $i+=$magic) { $magic = $avglength; $offset = 0; /* Recalculate magic for each line to be 100% sure */ do { $magic -= $offset; $chunk = mb_substr($string, $i, $magic, $charset); $chunk = base64_encode($chunk); $offset++; } while (strlen($chunk) > $length); if ($chunk) $encoded .= ' '.$start.$chunk.$end.$linefeed; } /* Chomp the first space and the last linefeed */ $encoded = substr($encoded, 1, -strlen($linefeed)); return $encoded; } ---- Manual Page -- http://www.php.net/manual/en/function.mb-encode-mimeheader.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+60283 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+60283&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+60283&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+60283&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+60283&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+60283&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+60283&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+60283&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+60283&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#101094) next »