Bladeren bron

提高getimagesize性能

james 8 jaren geleden
bovenliggende
commit
a0476d82d3
3 gewijzigde bestanden met toevoegingen van 24 en 6 verwijderingen
  1. 2 2
      helper/brand_helper.php
  2. 4 2
      helper/special_helper.php
  3. 18 2
      helper/util_helper.php

+ 2 - 2
helper/brand_helper.php

@@ -9,7 +9,7 @@
 require_once(BASE_ROOT_PATH . '/helper/img_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/special_helper.php');
 require_once(BASE_ROOT_PATH . '/helper/time_interval.php');
-
+require_once(BASE_ROOT_PATH . '/helper/util_helper.php');
 
 class brand_helper
 {
@@ -61,7 +61,7 @@ class brand_helper
                 if(empty($brand['brand_logo'])) continue;
 
                 $image = UPLOAD_SITE_URL . $brand['brand_logo'];
-                $ret = @getimagesize($image, $info);
+                $ret = util::imgsize($image);
                 if ($ret != false) {
                     $brand['brand_logo'] = $image;
                     $brands[] = $brand;

+ 4 - 2
helper/special_helper.php

@@ -8,6 +8,8 @@
  */
 //将乱七八糟的格式输出,整合成统一的格式输出
 
+require_once(BASE_ROOT_PATH . '/helper/util_helper.php');
+
 class brands_special
 {
     const publish_brands_special = 56;
@@ -430,7 +432,7 @@ class special_formater
             return false;
         }
 
-        $ret = @getimagesize($image,$info);
+        $ret = util::imgsize($image);
         if($ret != false) {
             $scale = doubleval($ret[0]) / doubleval($ret[1]);
             return $scale;
@@ -597,7 +599,7 @@ class special_formater
 
     private function image_wh($image,&$width,&$height)
     {
-        $ret = @getimagesize($image, $info);
+        $ret = util::imgsize($image);
         if ($ret != false) {
             $width  = $ret[0];
             $height = $ret[1];

+ 18 - 2
helper/util_helper.php

@@ -84,13 +84,13 @@ class util
         return del_incr('global_incr',$key,'mb_');
     }
 
-    static function start_with($haystack, $needle)
+    public static function start_with($haystack, $needle)
     {
         $length = strlen($needle);
         return (substr($haystack, 0, $length) === $needle);
     }
 
-    static function end_with($haystack, $needle)
+    public static function end_with($haystack, $needle)
     {
         $length = strlen($needle);
         if ($length == 0) {
@@ -99,4 +99,20 @@ class util
 
         return (substr($haystack, -$length) === $needle);
     }
+    public static function imgsize($url)
+    {
+        if (util::start_with($url,BASE_SITE_URL) == false) {
+            return @getimagesize($url);
+        }
+        else {
+            $length = strlen(BASE_SITE_URL);
+            $src = BASE_ROOT_PATH . substr($url, $length, strlen($url) - $length);
+            $size = @getimagesize($src);
+            if($size == false) {
+                return @getimagesize($url);
+            } else {
+                return $size;
+            }
+        }
+    }
 }