448 |
$newvalue=headerDecode($newvalue); // maybe there are more encoded |
$newvalue=headerDecode($newvalue); // maybe there are more encoded |
449 |
return(mb_convert_encoding($newvalue, "EUC-JP", "auto")); // parts |
return(mb_convert_encoding($newvalue, "EUC-JP", "auto")); // parts |
450 |
} else { |
} else { |
451 |
if (eregi('".*"',$value)) { // quoted-printable decoding |
if (eregi('".*"',$value)) { // quoted-pair |
452 |
$result1=ereg_replace('(.*)"(.*)"(.*)','\1',$value); |
ereg('([^"]*)"(([^"]+|\\\\.)*)"(.*)',$value,$vals); |
453 |
$result2=ereg_replace('(.*)"(.*)"(.*)','\2',$value); |
$newvalue = $vals[1].decode_quoted_pair($vals[2]).$vals[4]; |
|
$result3=ereg_replace('(.*)"(.*)"(.*)','\3',$value); |
|
|
$result2=ereg_replace('\\\\(.)','AI\1',$result2); |
|
|
$result2=ereg_replace('(.)','OI\1',$result2); |
|
|
$newvalue=$result1.'"'.$result2.'"'.$result3; |
|
454 |
return(mb_convert_encoding($newvalue, "EUC-JP", "auto")); |
return(mb_convert_encoding($newvalue, "EUC-JP", "auto")); |
455 |
} else { // there wasn't anything encoded, return the original string |
} else { // there wasn't anything encoded, return the original string |
456 |
return(mb_convert_encoding($value, "EUC-JP", "auto")); |
return(mb_convert_encoding($value, "EUC-JP", "auto")); |
556 |
case "x-newsreader:": |
case "x-newsreader:": |
557 |
case "x-mailer:": |
case "x-mailer:": |
558 |
case "user-agent:": |
case "user-agent:": |
559 |
$header->user_agent=trim($value); |
$header->user_agent=trim(decode_structured_body($value)); |
560 |
break; |
break; |
561 |
case "x-face:": |
case "x-face:": |
562 |
// echo "<p>-".base64_decode($value)."-</p>"; |
// echo "<p>-".base64_decode($value)."-</p>"; |
571 |
return $header; |
return $header; |
572 |
} |
} |
573 |
|
|
574 |
|
function decode_structured_body ($body) { |
575 |
|
$patterns = array ("/\"((?:[^\"\\\\]+|\\\\.)*)\"/e"); |
576 |
|
$replace = array ("mb_convert_encoding(decode_quoted_pair('\\1'), 'EUC-JP', 'auto')"); |
577 |
|
return preg_replace ($patterns, $replace, $body); |
578 |
|
} |
579 |
|
|
580 |
|
function decode_quoted_pair($value) { |
581 |
|
$value = ereg_replace('\\\\(\\\\")', "\\1", $value); |
582 |
|
return ereg_replace('\\\\(.)', "\\1", $value); |
583 |
|
} |
584 |
|
|
585 |
function decode_body($body,$encoding) { |
function decode_body($body,$encoding) { |
586 |
$bodyzeile=""; |
$bodyzeile=""; |
587 |
switch ($encoding) { |
switch ($encoding) { |