Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja cache'ująca.
Novy.
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 8
Dołączył: 28.10.2011

Ostrzeżenie: (0%)
-----


Chciałem napisać własną funkcje cachującą, bo w necie są tylko systemy oparte na klasach. W związku z tym ze nie ogarniam OOP i nie lubie używać czegoś czego nie rozumiem nie chce ich używac (IMG:style_emoticons/default/biggrin.gif)

Co źle robie? Wiem, że dziwnie napisane ;p samoukiem jestem więc dlatego błedy.

Czego nie jestem pewnien? Zapisywania wyniku do pliku i odczytania go. Nie wiem właściwie czy dobrze funkcje zbudowałem.. ;/

  1. function mysql_cache_query($zapytanie, $waznosc){
  2. $name = md5($zapytanie);
  3. $istnieje = file_exists('cache\\'.$name.'.cache');
  4. if(!$istnieje){
  5. $stworz = fopen("cache\\".$name.".cache", "w+");
  6. $tablica = mysql_fetch_array(mysql_query("$zapytanie"));
  7. $serialize = serialize($tablica);
  8. $fp = fopen('cache\\'.$name.'.cache', "a");
  9. flock($fp, 2);
  10. fwrite($fp, $serialize);
  11. flock($fp, 3);
  12. fclose($fp);
  13. return $tablica;
  14. }
  15. else{
  16. $mtime = filemtime('cache\\'.$name.'.cache');
  17. $rtime = time() - ($waznosc*60);
  18. if ($mtime < $rtime){
  19. unlink('cache\\'.$name.'.cache');
  20. $tablica = mysql_fetch_array(mysql_query($zapytanie));
  21. return $tablica;
  22. }
  23. else{
  24. $tablica = unserialize(fread(fopen('cache\\'.$name.'.cache', "a"), filesize('cache\\'.$name.'.cache')));
  25. return $tablica;
  26. }
  27. }
  28. }


tak wywołuje funkcje

  1. mysql_cache_query('SELECT * FROM users ORDER BY posts DESC', 1);


no i później chce wyświetlić info z tablicy:

  1. echo 'Użytkownik '.$tablica['login'].': '.$tablica['posts'].' postów.'


Ten post edytował Novy. 10.03.2012, 22:05:26
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 12:32