1 | <?php
|
---|
2 | /**
|
---|
3 | *
|
---|
4 | * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
|
---|
5 | *
|
---|
6 | * http://www.lockon.co.jp/
|
---|
7 | *
|
---|
8 | *
|
---|
9 | *
|
---|
10 | * üËö¤Î²èÌ̲òÁüÅ٤ˤ¢¤ï¤»¤Æ²èÁü¤òÊÑ´¹¤¹¤ë
|
---|
11 | */
|
---|
12 |
|
---|
13 | define("MOBILE_IMAGE_INC_PATH", realpath(dirname( __FILE__)) . "/../include");
|
---|
14 | require_once(MOBILE_IMAGE_INC_PATH . "/image_converter.inc");
|
---|
15 |
|
---|
16 | /**
|
---|
17 | * ²èÁüÊÑ´¹¥¯¥é¥¹
|
---|
18 | */
|
---|
19 | class GC_MobileImage {
|
---|
20 | /**
|
---|
21 | * ²èÁü¤òüËö¤Î²òÁüÅ٤˹ç¤ï¤»¤ÆÊÑ´¹¤¹¤ë
|
---|
22 | * output buffering ÍÑ¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô
|
---|
23 | *
|
---|
24 | * @param string ÆþÎÏ
|
---|
25 | * @return string ½ÐÎÏ
|
---|
26 | */
|
---|
27 | function handler($buffer) {
|
---|
28 |
|
---|
29 | // üËö¾ðÊó¤ò¼èÆÀ¤¹¤ë
|
---|
30 | $carrier = GC_MobileUserAgent::getCarrier();
|
---|
31 | $model = GC_MobileUserAgent::getModel();
|
---|
32 |
|
---|
33 | // ·ÈÂÓÅÅÏäξì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦
|
---|
34 | if ($carrier !== FALSE) {
|
---|
35 |
|
---|
36 | // HTMLÃæ¤ÎIMG¥¿¥°¤ò¼èÆÀ¤¹¤ë
|
---|
37 | $pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i';
|
---|
38 | $result = preg_match_all($pattern, $buffer, $images);
|
---|
39 |
|
---|
40 | // üËö¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë
|
---|
41 | $fp = fopen(MOBILE_IMAGE_INC_PATH . "/mobile_image_map_$carrier.csv", "r");
|
---|
42 | while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
|
---|
43 | if ($data[1] == $model || $data[1] == '*') {
|
---|
44 | $cacheSize = $data[2];
|
---|
45 | $imageFileSize = $data[7];
|
---|
46 | $imageType = $data[6];
|
---|
47 | $imageWidth = $data[5];
|
---|
48 | break;
|
---|
49 | }
|
---|
50 | }
|
---|
51 | fclose($fp);
|
---|
52 |
|
---|
53 | // docomo¤Èsoftbank¤Î¾ì¹ç¤Ï²èÁü¥Õ¥¡¥¤¥ë°ì¤Ä¤ËÍøÍѲÄǽ¤Ê¥µ¥¤¥º¤Î¾å¸Â¤ò·×»»¤¹¤ë
|
---|
54 | // au¤ÏHTML¤Îbyte¿ô¾å¸Â¤Ë²èÁü¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬´Þ¤Þ¤ì¤Ê¤¤¤Î¤ÇimageFileSize¤Î¤Þ¤Þ¡£
|
---|
55 | if ($carrier == "docomo" or $carrier == "softbank") {
|
---|
56 | // ·×»»¼°¡§(ÍøÍÑüËö¤Çɽ¼¨²Äǽ¤Êcache¥µ¥¤¥º - HTML¤Î¥Ð¥¤¥È¿ô - ÊÑ´¹¸å¤Î²èÁü̾¤Î¥Ð¥¤¥È¿ô(ÌܰÂÃÍ) ) / HTMLÃæ¤Î²èÁü¿ô
|
---|
57 | $temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result;
|
---|
58 | // ·×»»·ë²Ì¤¬Ã¼Ëö¤Îɽ¼¨²Äǽ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¾å¸Â¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï·×»»·ë²Ì¤ÎÃͤò͸ú¤Ë¤¹¤ë
|
---|
59 | if ($temp_imagefilesize < $imageFileSize) {
|
---|
60 | $imageFileSize = $temp_imagefilesize;
|
---|
61 | }
|
---|
62 | }
|
---|
63 |
|
---|
64 | // ²èÁüÊÑ´¹¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë
|
---|
65 | $imageConverter = New ImageConverter();
|
---|
66 | $imageConverter->setOutputDir(MOBILE_IMAGE_DIR);
|
---|
67 | $imageConverter->setImageType($imageType);
|
---|
68 | $imageConverter->setImageWidth($imageWidth);
|
---|
69 | $imageConverter->setFileSize($imageFileSize);
|
---|
70 |
|
---|
71 | // HTMLÃæ¤ÎIMG¥¿¥°¤òÊÑ´¹¸å¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ËÃÖ´¹¤¹¤ë
|
---|
72 | foreach ($images[1] as $key => $value) {
|
---|
73 | $converted = $imageConverter->execute(preg_replace('|^' . URL_DIR . '|', HTML_PATH, $value));
|
---|
74 | if (isset($converted['outputImageName'])) {
|
---|
75 | $buffer = str_replace($value, MOBILE_IMAGE_URL . '/' . $converted['outputImageName'], $buffer);
|
---|
76 | } else {
|
---|
77 | $buffer = str_replace($images[0][$key], '<!--No image-->', $buffer);
|
---|
78 | }
|
---|
79 | }
|
---|
80 | }
|
---|
81 | return $buffer;
|
---|
82 | }
|
---|
83 | }
|
---|
84 | ?>
|
---|