| 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('|^' . PC_URL_DIR . '|', PC_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 | ?> |
|---|