ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/work/tsubasa/prj_cmd/setup/script/option-convert_ktai_emoji.php @ 4156

Last change on this file since 4156 was 4156, checked in by tsubasa, 13 years ago

#1319:
i-modeは連番でない部分を特定して連番になるように修正。
OpenPNE_EmojiDocomoクラスの対応している部分「1001 => '',」を連番に変更すれば、変更する前のソースで対応できる

softbankは前回作成した番号を作る関数を利用。
番号が連番になるように調整されている。

File size: 5.3 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7require_once './config.inc.php';
8require_once OPENPNE_WEBAPP_DIR . '/init.inc';
9
10$carrier = $argv[1];
11$input_path = $argv[2];
12$output_path = $argv[3];
13
14if (empty($carrier) || empty($input_path)) {
15        exit('carrier and input_path are must paramater');
16} elseif (is_dir($input_path) === false) {
17        exit('input_path is not directory');
18}
19
20if (empty($output_path)) {
21        $output_path = OPENPNE_PUBLIC_HTML_DIR .  '/skin/default/img/emoji/' . $carrier . '/';
22} elseif (is_dir($output_path) === false) {
23        exit('output_path is not directory');
24}
25
26switch ($carrier) {
27case 'i':
28    convert_i_emoji_img($input_path, $output_path);
29    break;
30case 'e':
31    convert_e_emoji_img($input_path, $output_path);
32    break;
33case 's':
34    convert_s_emoji_img($input_path, $output_path);
35    break;
36default:
37    exit('carrier is not valid');
38    break;
39}
40
41function convert_i_emoji_img($input_path, $output_path)
42{
43    $input_dir = opendir($input_path);
44
45    if ($input_dir !== false && $output_dir !== false) {
46        while (($file = readdir($input_dir)) !== false) {
47                if (array_pop(explode('.', $file)) == 'gif') {
48                        $code = hexdec('0x' . basename($file, '.gif'));
49                if ((0xF89F <= $code) && ($code <= 0xF8FC) ||
50                    (0xF940 <= $code) && ($code <= 0xF949) ||
51                    (0xF950 <= $code) && ($code <= 0xF952) ||
52                    (0xF955 <= $code) && ($code <= 0xF957) ||
53                    (0xF95B <= $code) && ($code <= 0xF95E) ||
54                    (0xF972 <= $code) && ($code <= 0xF97E) ||
55                    (0xF980 <= $code) && ($code <= 0xF9B0)) {
56                    $emoji_bin = pack("C*", $code >> 8, $code % 256);
57                } else {
58                    $emoji_bin = pack("C*", 0xF9, $code);
59                }
60                if((0xF9B1 <= $code) && ($code <= 0xF9FC)) {
61                    $emoji_code = $code - 0xF9B0 + 176;
62                    $emoji_num = 'i' . $emoji_code;
63                }else{
64                    $emoji_num = str_replace('%', '', emoji_escape_i($emoji_bin));
65                }
66                if (!empty($emoji_num)) {
67                    $input_emoji = $input_path . $file;
68                    $output_emoji = $output_path .  $emoji_num . '.gif';
69                    copy($input_emoji, $output_emoji);
70                }
71                }
72        }
73    }
74
75    return false;
76}
77
78function convert_e_emoji_img($input_path, $output_path)
79{
80    $input_dir = opendir($input_path);
81
82    if ($input_dir !== false && $output_dir !== false) {
83        while (($file = readdir($input_dir)) !== false) {
84            if (array_pop(explode('.', $file)) == 'gif') {
85                $code = hexdec('0x' . basename($file, '.gif'));
86                if ((0xF340 <= $code) && ($code <= 0xF37E) ||
87                    (0xF380 <= $code) && ($code <= 0xF3FC) ||
88                    (0xF440 <= $code) && ($code <= 0xF47E) ||
89                    (0xF480 <= $code) && ($code <= 0xF493) ||
90                    (0xF640 <= $code) && ($code <= 0xF67E) ||
91                    (0xF680 <= $code) && ($code <= 0xF6FC) ||
92                    (0xF740 <= $code) && ($code <= 0xF77E) ||
93                    (0xF780 <= $code) && ($code <= 0xF7FC)) {
94                    $emoji_bin = pack("C*" , $code >> 8, $code % 256);
95                }
96                $emoji_num = str_replace('%', '', emoji_escape_ez($emoji_bin));
97                if (!empty($emoji_num)){
98                    $input_emoji = $input_path . $file;
99                    $output_emoji = $output_path . $emoji_num . '.gif';
100                    copy($input_emoji, $output_emoji);
101                }
102            }
103        }
104    }
105
106    return false;
107}
108
109function convert_s_emoji_img($input_path, $output_path)
110{
111    $input_dir = opendir($input_path);
112   
113    if ($input_dir !== false && $output_dir !== false) {
114        while (($file = readdir($input_dir)) !== false) {
115            if (array_pop(explode('.', $file)) == 'gif') {
116                $emoji_num = get_s_emoji_number(basename($file,'.gif'));
117                if ($emoji_num != 0){
118                    $input_emoji = $input_path . $file;
119                    $output_emoji = $output_path . 's' .  $emoji_num . '.gif';
120                    copy($input_emoji,$output_emoji);
121                }
122            }
123        }
124    }
125}
126function get_s_emoji_number($file_basename)
127{
128    $pattern_g = "/G[0-9a-z]+/";
129    $pattern_e = "/E[0-9a-z]+/";
130    $pattern_f = "/F[0-9a-z]+/";
131    $pattern_o = "/O[0-9a-z]+/";
132    $pattern_p = "/P[0-9a-z]+/";
133    $pattern_q = "/Q[0-9a-z]+/";
134   
135    $emoji_num = 0;
136   
137    $pattern_num = "/[0-9a-z]+/";
138    preg_match($pattern_num,$file_basename,$result);
139   
140    if (preg_match($pattern_g,$file_basename)) {
141        $group = hexdec($result[0]) - 32;
142    }else if (preg_match($pattern_e,$file_basename)) {
143        $group = hexdec($result[0]) + 90 - 32;
144    }else if (preg_match($pattern_f,$file_basename)) {
145        $group = hexdec($result[0]) + 180 - 32;
146    }else if (preg_match($pattern_o,$file_basename)) {
147        $group = hexdec($result[0]) + 270 - 32;
148    }else if (preg_match($pattern_p,$file_basename)) {
149        $group = hexdec($result[0]) + 347 - 32;
150    }else if (preg_match($pattern_q,$file_basename)) {
151        $group = hexdec($result[0]) + 423 - 32;
152    }
153   
154    return $group;
155   
156}
157?>
Note: See TracBrowser for help on using the repository browser.