Встречал несколько раз такую ошибку в проектировании сайта, при которой картинки в папке upload сохранены в слишком хорошем качестве и Google PageSpeed Insights (https://developers.google.com/speed/pagespeed/insights/) показывает низкие результаты из-за этого.
Собственно, сам скрипт:
<?php
set_time_limit(0);
ini_set("memory_limit", "1000M");
function listFiles( $from = '.')
{
if(! is_dir($from))
return false;
$files = array();
$dirs = array( $from);
while( NULL !== ($dir = array_pop( $dirs)))
{
if( $dh = opendir($dir))
{
while( false !== ($file = readdir($dh)))
{
if( $file == '.' || $file == '..')
continue;
$path = $dir . '/' . $file;
if( is_dir($path))
$dirs[] = $path;
else
$files[] = $path;
}
closedir($dh);
}
}
return $files;
}
$arFiles = listFiles("/путь/к/папке/картинок/");
$i=0;
foreach($arFiles as $item)
{
if(getimagesize($item))
{
if ($im = imagecreatefromjpeg($item))
{
$i++;
imagejpeg($im, $item, 80);
imagedestroy($im);
echo "$i) $item " .memory_get_usage()."\n";
}
}
}