无法获取新图像大小的PHP


Cannot get new image size 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);
}

感谢@u_mulder的回答。clearstatcache完美工作,解决了问题!:)这是因为它删除了旧的变量数据。