cachowanie |
cachowanie |
9.05.2003, 19:26:38
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
Witam.
Ostatnio zainteresowalem sie optymalizacja i pojawilo sie pytanie jak dziala cachowanie i jak to zrobic?? |
|
|
9.05.2003, 20:04:29
Post
#2
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
[php:1:c740db5d12]<?php
// pseudokod $zmiana= sprawdz_zawartosc(); // lub sprawdz date if($zmiana){ pobierz_zawartosc_szablonu(); wypelnij_szablon_daymi(); zapisz_wynik(); } ?>[/php:1:c740db5d12] Tak ja to widze w podstawowym zakresie. -------------------- |
|
|
9.05.2003, 20:08:27
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
heh..... a moge poprosic o jakis bliższy opis funkcji?? Bo ja sie nie barzdo orientuje co znaczy co. Chcialbym to zastosowac, ale nie wiem jak.
|
|
|
9.05.2003, 20:15:36
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
Przecież pisze, że to pseudokod, czyli taki schemat ideowy...
Po sprawdzeniu odpowiedniego warunku pobierasz szablon, wypełniasz go świeżymi danymi i nadpisujesz na miejsce tamtego. -------------------- |
|
|
9.05.2003, 20:17:26
Post
#5
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
hmm.. ale sam schema ideaowy mi nic nie daje. Chce wiedzic dokladniej jak to zrobic.
|
|
|
9.05.2003, 20:34:05
Post
#6
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
Ja stosuje coś takiego (nie jest to Smarty, ale na moje potrzeby wystarcza i zaw2sze moge własny kod zmodyfikowac łatwo):[php:1:c5d4413fd9]<?php
function __getTemplate($__file){ $__template = 'Error: Unable to open template file.'; if(file_exists($__file)){ $__template = file($__file); $__template = implode('', $__template); } return $__template; } function __getTemplateBlock($__file, $__delimiter){ $__result = __getTemplate($__file); $__noError = ereg($__delimiter, $__result, $__wynik); if($__noError){ $__result = $__wynik[1]; // znaleziono - Zapisujemy klocek w tablicy } else { $__result = 'Error: Unable to get template content.'; } return $__result; } ?>[/php:1:c5d4413fd9] __getTemplate() pobiera do pamięci plik z szablonem, i scala go w string (file() ładuje linijka do linijki do tablicy, dlatego implode); __getTemplateBlock() z tego co wykona _getTemplate() wycina dany fragment, np. [php:1:c5d4413fd9]<?php $__delimiter = '<title>(.*)</title>'; ?>[/php:1:c5d4413fd9] pobierze tytuł strony - bez znaczników. -------------------- |
|
|
9.05.2003, 20:40:29
Post
#7
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) |
Ja dziś potrzebowałem prościutkiej funkcji do parsowania, i wyszły dwie, krótka i dłuższa, zgadnijcie która szybsza :]
[php:1:e2179f13e7]<?php function parse1($file, $blocks = array()){ if(file_exists($file)){ $f = fopen($file, 'r'); $unparsed = fread($f, filesize($file)); fclose($f); } else{ die('Plik "'.$file.'" nie istnieje!'); } if(preg_match_all('#{(.+?)}#is', $unparsed, $found)){ $parsed = $unparsed; foreach($found[1] as $block){ $parsed = str_replace('{'.$block.'}', $blocks[$block], $parsed); } } return $parsed; } function parse2($file, $blocks = array()){ $unparsed = file_exists($file) ? implode('', file($file)) : die('Plik '.$file.' nieistnieje!'); return preg_replace('/{([^}]+)}/e', '$blocks["1"]', $unparsed); } ?>[/php:1:e2179f13e7] |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 18:19 |