Webboard

Pełna wersja: Jak cacheować obrazki pobierane z serwera?
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
$row[0] zwraca identyfikator steam np. 76561198016890832
więc przypisz jako nazwe avatara ten identyfikator

powtórzę Ci to jeszcze raz, nie widząc całego kodu dużo nie można powiedzieć

ma być jakoś tak

Kod PHP:
    $dir 'cache/avatar/'$row[0];

    
// Jeden dzień cache, 3600= 1 godz
    
if(file_exists($dir)&&(time()-3600<filemtime($dir)))
    {
      
// plik istnieje, czas nie jest wiekszy
      
$avatarfile_get_contents($dir);
    }
    else
    {
      
// pobieranie i zapis avatara
      
$avatar2 getAvatar($row[0]);
      
file_put_contents($dir$avatar2);
      
$avatarfile_get_contents(getAvatar($dir ));
    } 
Dzięki wielkie za pomoc! Teraz działa jak należy! Kod wygląda tak:
Kod:
// Tworzę ścieżkę pliku
    $dir = 'cache/avatar/'. $row[0] .'.jpg';

    // Jeden dzień cache, 3600 = 1 godz
    if(file_exists($dir)&&(time()-"3600"<filemtime($dir)))
    {
      // plik istnieje, czas nie jest wiekszy
      $avatar = $dir;
    }
    else
    {
      // pobieranie i zapis avatara
      file_put_contents($dir, file_get_contents(getAvatar($row[0])));
      $avatar = $dir;
    }

Jeszcze jedno pytanko, jaki byłby najbardziej odpowiedni czas przetrzymywania tych avatarów w pamięci? Ten skrypt to prosty ranking graczy pobierany z serwera :)
To już w sumie Twoja sprawa. Awatarów nikt nie zmienia co 5 minut, więc możesz dać przynajmniej 24 godziny.
Okej, posłucham rady :) Dzięki jeszcze raz za pomoc :)

LikeLoveHate

Znalazłem taki artykuł: http://www.mancando.pl/cache-control-w-h...d-insight/ może komuś się przyda ;)
Jeżeli zapisujesz je na swoim serwerze, to można pomyśleć o jeszcze czymś: zapisać wiele awatarów jako jeden plik, a następnie zrobić css sprite. Dzięki temu byłoby mniej żądań do serwera, a to zawsze dodatkowy kop. Nie wiem jednak, czy to ma sens na tych tabelkach, nie orientuję się w rankingach serwerów gier.
Myślę że jest okej tak jest, zastanawiałem nad kompresją pobranych obrazków tylko nie mam żadnego skryptu do tego. Ktoś zna może coś godnego polecenia? 
Co do tego tworzenia sprites to jak to zrobić ?:3
Znalazłem rozwiązanie kompresji obrazków, dla ciekawskich:
Kod:
$source = imagecreatefromjpeg($dir);
      imagejpeg($source, $dir, 40);

Kompresuje obrazki do jakości 40% w moim wypadku dało to mniej więcej 40% spadku wagi pliku, efekt nie jest najlepszy ale nie widać tego u mnie ponieważ wykorzystuję małe avatary :)
Przy okazji odświeżę temat, ktoś powie coś więcej o tworzeniu tych sprites?
Stron: 1 2