Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> cachowanie
qbba
post 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%)
X----


Witam.
Ostatnio zainteresowalem sie optymalizacja i pojawilo sie pytanie jak dziala cachowanie i jak to zrobic??
Go to the top of the page
+Quote Post
scanner
post 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.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
qbba
post 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%)
X----


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.
Go to the top of the page
+Quote Post
spenalzo
post 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.


--------------------

Go to the top of the page
+Quote Post
qbba
post 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%)
X----


hmm.. ale sam schema ideaowy mi nic nie daje. Chce wiedzic dokladniej jak to zrobic.
Go to the top of the page
+Quote Post
scanner
post 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.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Cudi
post 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]
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 18:19