Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [rexp] backreference - problem z wydajnoscia
rzseattle
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Witam

W mojch szablonach wszechobecne są znaczniki blokow typu:
Kod
<cos:cos param1="1" param2="2"> jakis sobie tekst</cos:cos>

Aby wychwycic te bloki uzywalem wyrazenia:
  1. <?php
  2. $exp = "/<(w+):(w+) *(.*?) *>(.*?)</1:2 *>/ms";
  3. $source = preg_replace_callback( $exp, array( &$this, 'replaceBlock' ), $in );
  4. ?>


Jednak przy wiekszych stringach preg_replace_callback potrafi sie wykonywac i 12 sekund. Potem wyniki sa keszowane i dla end usera to nie ma znaczenia, jednak dla administratora przebudowywującego strone jest to nie do przyjęcia.

Czy ktoś juz zagłębiał sie w problem wykrywania bloków ( autorowie systemow szablonów mowa o was smile.gif ) i dysponuje prostym wyrażeniem lub algorytmem które by rozwiązało ten problem?

pozdrawiam
rzSeattle


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bendi
post
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(FiDO @ 2005-09-16 19:51:27)
Ciekawe.. jakos nie przypominam sobie, zeby backreferences dawaly tak w kosc.
Jak mozesz to wyizoluj jakis dzialajacy kawalek kodu do parsowania + przykladowy szablon i umiesc go tutaj

O tak dyskusja Ciekawa i ja z chęcia poeksperymentuję, więc do prośby się przyłączam.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 22.08.2025 - 07:35