[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnuheter-dev] patch fr ån paf
From: |
Patrik Wallstrom |
Subject: |
Re: [Gnuheter-dev] patch fr ån paf |
Date: |
Sun, 24 Nov 2002 14:10:13 +0100 |
User-agent: |
Mutt/1.4i |
On Sun, 24 Nov 2002, Ulf Harnhammar wrote:
> On Sun, 24 Nov 2002, Patrik Wallstrom wrote:
>
> > Paf har skickat en patch som rättar till ett fel i mailutskicket när
> > man registrerar sig (han bor i Skåne och har registrerat sig på Arons
> > site). Han har visserligen rätt i att kodningen på mailet är fel, och
> > inte identifierar sig som iso-8859-1, men patchen är inte så snyggt
> > gjord, men borde ändå lösas nästan så. Mailet ska konstrueras, och
> > sedan matas igenom en quoted-printable-funktion, eller markeras som
> > iso-8859-1. Kolla patchen på det han tyckte var fel.
>
> Hmm, någon PHP-utvecklare har lagt in funktionen
> quoted_printable_decode() men ingen quoted_printable_encode(). Dumt. Man
> får väl skriva en egen.
function quoted_printable_encode($input, $line_max = 76) {
$hex =
array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
$lines = preg_split("/(?:\r\n|\r|\n)/", $input);
$eol = "\r\n";
$linebreak = "=0D=0A";
$escape = "=";
$output = "";
for ($j=0;$j<count($lines);$j++) {
$line = $lines[$j];
$linlen = strlen($line);
$newline = "";
for($i = 0; $i < $linlen; $i++) {
$c = substr($line, $i, 1);
$dec = ord($c);
if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at
eol only
$c = "=20";
} elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) )
{ // always encode "\t", which is *not* required
$h2 = floor($dec/16); $h1 = floor($dec%16);
$c = $escape.$hex["$h2"].$hex["$h1"];
}
if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is
not counted
$output .= $newline.$escape.$eol; // soft line break; " =\r\n"
is okay
$newline = " ";
}
$newline .= $c;
} // end of for
$output .= $newline;
if ($j<count($lines)-1) $output .= $linebreak;
}
return trim($output);
}
Vet inte om min Emacs pajade nåt nu, men finns här också:
http://www.php.net/manual/en/function.quoted-printable-decode.php
> Måste inte mailheadern "MIME-Version: 1.0" vara med också? Dessutom såg
> väl subject-raden lite konstig ut. Den ska ju vara speciell, enligt RFC
> 2047.
Hm, vet faktiskt inte, jag har bara dekodat MIME de senaste veckorna
:)
Subject-raden måste väl vara kodad också. Går det förresten inte att
vara 8-bitars-clean om man berättar det?
--
patrik_wallstrom->foodfight->address@hidden>+46-733173956
`-> http://www.gnuheter.com/