2014-09-27 2 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' –

+0

Perfect! Это сработало. благодаря! Я собираюсь подробно проверить, как это влияет на остальную часть кода, но пока у меня есть мое решение. – i333

ответ

0

Благодаря @u_mulder для ответ. clearstatcache отлично справился и решил проблему! :) Это происходит потому, что он удаляет старые данные переменной.

Смежные вопросы