OSDN Git Service

Google Code に入れていた最新 r54 (2011/12/17) を反映 | https://code.google.com/p/xoops-core...
[xoops-japanese/XOOPS-Core.git] / XOOPS2.0 / utf-8 / language / japanese / xoopsmailerlocal.php
1 <?php\r
2 class XoopsMailerLocal extends XoopsMailer {\r
3 \r
4         function XoopsMailerLocal(){\r
5                 $this->XoopsMailer();\r
6                 $this->charSet = 'iso-2022-jp';\r
7                 $this->encoding = '7bit';\r
8         }\r
9 \r
10         function encodeFromName($text){\r
11                 return $this->EUCtoJIS($text);\r
12         }\r
13 \r
14         function encodeSubject($text){\r
15                 return $this->EUCtoJIS($text);\r
16         }\r
17 \r
18         function encodeBody(&$text){\r
19                 $text = $this->EUCtoJIS($text);\r
20         }\r
21 \r
22 \r
23 \r
24         /*-------------------------------------\r
25          PHP FORM MAIL 1.01 by TOMO\r
26          URL : http://www.spencernetwork.org/\r
27          E-Mail : groove@spencernetwork.org\r
28         --------------------------------------*/\r
29         function EUCtoJIS($str_EUC){\r
30                 $str_JIS = '';\r
31                 $mode = 0;\r
32                 $b = unpack("C*", $str_EUC);\r
33                 $n = count($b);\r
34                 for ($i = 1; $i <= $n; $i++) {\r
35                         if ($b[$i] == 0x8E) {\r
36                                 if ($mode != 2) {\r
37                                         $mode = 2;\r
38                                         $str_JIS .= pack("CCC", 0x1B, 0x28, 0x49);\r
39                                 }\r
40                                 $b[$i+1] -= 0x80;\r
41                                 $str_JIS .= pack("C", $b[$i+1]);\r
42                                 $i++;\r
43                         } elseif ($b[$i] > 0x8E) {\r
44                                 if ($mode != 1){\r
45                                         $mode = 1;\r
46                                         $str_JIS .= pack("CCC", 0x1B, 0x24, 0x42);\r
47                                 }\r
48                                 $b[$i] -= 0x80; $b[$i+1] -= 0x80;\r
49                                 $str_JIS .= pack("CC", $b[$i], $b[$i+1]);\r
50                                 $i++;\r
51                         } else {\r
52                                 if ($mode != 0) {\r
53                                         $mode = 0;\r
54                                         $str_JIS .= pack("CCC", 0x1B, 0x28, 0x42);\r
55                                 }\r
56                                 $str_JIS .= pack("C", $b[$i]);\r
57                         }\r
58                 }\r
59                 if ($mode != 0) $str_JIS .= pack("CCC", 0x1B, 0x28, 0x42);\r
60                 return $str_JIS;\r
61         }\r
62 }\r
63 ?>