/[suikacvs]/messaging/newsportal/newsportal.php
Suika

Diff of /messaging/newsportal/newsportal.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by wakaba, Sat Dec 1 12:34:50 2001 UTC revision 1.24 by wakaba, Sat Dec 1 15:15:08 2001 UTC
# Line 448  function headerDecode($value) { Line 448  function headerDecode($value) {
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=eregi_replace('(.*)"(.*)"(.*)','\1',$value);        ereg('([^"]*)"(([^"]+|\\\\.)*)"(.*)',$value,$vals);
453        $result2=eregi_replace('(.*)"(.*)"(.*)','\2',$value);        $newvalue = $vals[1].decode_quoted_pair($vals[2]).$vals[4];
       $result3=eregi_replace('(.*)"(.*)"(.*)','\3',$value);  
       $result2=eregi_replace('\\(.)','\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"));
# Line 559  function parse_header($hdr,$number="") { Line 556  function parse_header($hdr,$number="") {
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>";
# Line 574  function parse_header($hdr,$number="") { Line 571  function parse_header($hdr,$number="") {
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) {

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.24

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24