2014-09-27 62 views
0

我想從特定文件夾中獲取圖像的文件大小,之後進行優化。無法得到新的圖像大小PHP

我得到相同的尺寸爲$imgsize以及$newsize即使後者出現後,他們的圖像進行了優化。我真正想要的是它讓我看到新的尺寸,而不是舊的!

$array對圖像的URL列表(絕對URL,屬於另一個服務器)

(也讓我知道,這是罰款,我在這部分$optimized_image= compress_image($path, $path, 50);優化尺寸後更換相同的圖像) ?

這裏是我的代碼:

$f_path='newfolder'; 
foreach ($array as $imglink) 
     {   
      $image = file_get_contents($imglink); 
      $path= $f_path . "/" . basename($imglink); 
      $new_image=file_put_contents($path , $image); 
      $imgsize = filesize($path); 
      $optimized_image= compress_image($path, $path, 50); 
      $newsize = filesize($path); 
      $percentage = ($imgsize/$newsize)*100; 
      echo $imgsize . "<br/>"; //this size appears fine 
      echo $newsize; //gives same size as above, no change! 
     } 

這裏是我使用的壓縮圖像(這似乎完全正常工作對我來說)

function compress_image($src, $dest , $quality) 
{ 
$info = getimagesize($src); 

if ($info['mime'] == 'image/jpeg') 
{ 
    $image = imagecreatefromjpeg($src); 
} 
elseif ($info['mime'] == 'image/gif') 
{ 
    $image = imagecreatefromgif($src); 
} 
elseif ($info['mime'] == 'image/png') 
{ 
    $image = imagecreatefrompng($src); 
} 
else 
{ 
    die('uknown format'); 
} 

imagejpeg($image, $dest, $quality); 
} 
+1

我認爲你需要使用'clearstatcache' – 2014-09-27 20:07:01

+0

完美!有效。謝謝!我將詳細檢查它是如何影響其他代碼的,但現在,我已經得到了我的解決方案。 – i333 2014-09-27 20:17:26

回答

0

感謝@u_mulder的功能答案。 clearstatcache完美工作,解決了問題! :)這是因爲它刪除了舊的可變數據。