- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/data/class/GC_MobileImage.php
r12157 r15078 8 8 * 9 9 * 10 * üËö¤Î²èÌ̲òÁüÅ٤ˤ¢¤ï¤»¤Æ²èÁü¤òÊÑ´¹¤¹¤ë10 * 端末の画面解像度にあわせて画像を変換する 11 11 */ 12 12 … … 15 15 16 16 /** 17 * ²èÁüÊÑ´¹¥¯¥é¥¹17 * 画像変換クラス 18 18 */ 19 19 class GC_MobileImage { 20 20 /** 21 * ²èÁü¤òüËö¤Î²òÁüÅ٤˹ç¤ï¤»¤ÆÊÑ´¹¤¹¤ë22 * output buffering ÍÑ¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô21 * 画像を端末の解像度に合わせて変換する 22 * output buffering 用コールバック関数 23 23 * 24 * @param string ÆþÎÏ25 * @return string ½ÐÎÏ24 * @param string 入力 25 * @return string 出力 26 26 */ 27 27 function handler($buffer) { 28 28 29 // üËö¾ðÊó¤ò¼èÆÀ¤¹¤ë29 // 端末情報を取得する 30 30 $carrier = GC_MobileUserAgent::getCarrier(); 31 31 $model = GC_MobileUserAgent::getModel(); 32 32 33 // ·ÈÂÓÅÅÏäξì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦33 // 携帯電話の場合のみ処理を行う 34 34 if ($carrier !== FALSE) { 35 35 36 // HTML Ãæ¤ÎIMG¥¿¥°¤ò¼èÆÀ¤¹¤ë36 // HTML中のIMGタグを取得する 37 37 $pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i'; 38 38 $result = preg_match_all($pattern, $buffer, $images); 39 39 40 // üËö¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë40 // 端末の情報を取得する 41 41 $fp = fopen(MOBILE_IMAGE_INC_PATH . "/mobile_image_map_$carrier.csv", "r"); 42 42 while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) { … … 51 51 fclose($fp); 52 52 53 // docomo ¤Èsoftbank¤Î¾ì¹ç¤Ï²èÁü¥Õ¥¡¥¤¥ë°ì¤Ä¤ËÍøÍѲÄǽ¤Ê¥µ¥¤¥º¤Î¾å¸Â¤ò·×»»¤¹¤ë54 // au ¤ÏHTML¤Îbyte¿ô¾å¸Â¤Ë²èÁü¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬´Þ¤Þ¤ì¤Ê¤¤¤Î¤ÇimageFileSize¤Î¤Þ¤Þ¡£53 // docomoとsoftbankの場合は画像ファイル一つに利用可能なサイズの上限を計算する 54 // auはHTMLのbyte数上限に画像ファイルサイズが含まれないのでimageFileSizeのまま。 55 55 if ($carrier == "docomo" or $carrier == "softbank") { 56 // ·×»»¼°¡§(ÍøÍÑüËö¤Çɽ¼¨²Äǽ¤Êcache¥µ¥¤¥º - HTML¤Î¥Ð¥¤¥È¿ô - ÊÑ´¹¸å¤Î²èÁü̾¤Î¥Ð¥¤¥È¿ô(ÌÜ°ÂÃÍ) ) / HTMLÃæ¤Î²èÁü¿ô56 // 計算式:(利用端末で表示可能なcacheサイズ - HTMLのバイト数 - 変換後の画像名のバイト数(目安値) ) / HTML中の画像数 57 57 $temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result; 58 // ·×»»·ë²Ì¤¬Ã¼Ëö¤Îɽ¼¨²Äǽ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¾å¸Â¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï·×»»·ë²Ì¤ÎÃͤò͸ú¤Ë¤¹¤ë58 // 計算結果が端末の表示可能ファイルサイズ上限より小さい場合は計算結果の値を有効にする 59 59 if ($temp_imagefilesize < $imageFileSize) { 60 60 $imageFileSize = $temp_imagefilesize; … … 62 62 } 63 63 64 // ²èÁüÊÑ´¹¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë64 // 画像変換の情報をセットする 65 65 $imageConverter = New ImageConverter(); 66 66 $imageConverter->setOutputDir(MOBILE_IMAGE_DIR); … … 69 69 $imageConverter->setFileSize($imageFileSize); 70 70 71 // HTML Ãæ¤ÎIMG¥¿¥°¤òÊÑ´¹¸å¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ËÃÖ´¹¤¹¤ë71 // HTML中のIMGタグを変換後のファイルパスに置換する 72 72 foreach ($images[1] as $key => $value) { 73 73 $converted = $imageConverter->execute(preg_replace('|^' . URL_DIR . '|', HTML_PATH, $value));
Note: See TracChangeset
for help on using the changeset viewer.