source: branches/dev/data/class/GC_MobileImage.php @ 11686

Revision 11686, 2.5 KB checked in by uehara, 19 years ago (diff)
  • Property svn:eol-style set to native
RevLine 
[11418]1<?php
2/**
[11686]3 *
4 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
5 *
6 * http://www.lockon.co.jp/
7 *
8 *
9 *
[11418]10 * üËö¤Î²èÌ̲òÁüÅ٤ˤ¢¤ï¤»¤Æ²èÁü¤òÊÑ´¹¤¹¤ë
11 */
12
[11457]13define("MOBILE_IMAGE_INC_PATH", realpath(dirname( __FILE__)) . "/../include");
14require_once(MOBILE_IMAGE_INC_PATH . "/image_converter.inc");
[11418]15
16/**
[11457]17 * ²èÁüÊÑ´¹¥¯¥é¥¹
[11418]18 */
19class 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();
[11430]32
[11457]33        // ·ÈÂÓÅÅÏäξì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦
[11418]34        if ($carrier !== FALSE) {
[11431]35
[11457]36            // HTMLÃæ¤ÎIMG¥¿¥°¤ò¼èÆÀ¤¹¤ë
[11418]37            $pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i';
[11458]38            $result = preg_match_all($pattern, $buffer, $images);
[11421]39
[11457]40            // üËö¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë
41            $fp = fopen(MOBILE_IMAGE_INC_PATH . "/mobile_image_map_$carrier.csv", "r");
[11418]42            while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
[11459]43                if ($data[1] == $model || $data[1] == '*') {
[11458]44                    $cacheSize     = $data[2];
45                    $imageFileSize = $data[7];
46                    $imageType     = $data[6];
47                    $imageWidth    = $data[5];
[11459]48                    break;
[11418]49                }
50            }
51            fclose($fp);
52
[11458]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
[11457]64            // ²èÁüÊÑ´¹¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë
[11418]65            $imageConverter = New ImageConverter();
66            $imageConverter->setOutputDir(MOBILE_IMAGE_DIR);
67            $imageConverter->setImageType($imageType);
68            $imageConverter->setImageWidth($imageWidth);
[11458]69            $imageConverter->setFileSize($imageFileSize);
[11418]70
[11457]71            // HTMLÃæ¤ÎIMG¥¿¥°¤òÊÑ´¹¸å¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ËÃÖ´¹¤¹¤ë
[11418]72            foreach ($images[1] as $key => $value) {
[11453]73                $converted = $imageConverter->execute(preg_replace('|^' . PC_URL_DIR . '|', PC_HTML_PATH, $value));
[11457]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                }
[11418]79            }
80        }
81        return $buffer;
82    }
83}
84?>
Note: See TracBrowser for help on using the repository browser.