Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Wyrażenia regularne, do prostego systemu szablonów
Frublowski
post 31.03.2007, 12:21:02
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.03.2007

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


Mam prosty system szablonów i nie jestem pewien co do wyrażeń regularnych w nim użytych, sam je pisałem i na razie działają bez zarzutu jednak wolałbym się upewnić:

Pierwsze wyrażenie służy do zamiany np.
  1. <h1>{$asdf$}</h1> jak i również {<h1>$asdf$</h1>}

na:
  1. <h1>jakas przykladowa wartos zmiennej</h1>

i ma postać:
  1. <?php
  2. preg_replace('#{([^{]*)($'.$zmienna.'$)([^}]*)}?#','1%%*%%'.$wartosc.'3',$szablon);
  3. ?>

dodane tutaj znaki %%*%% służą do tego że gdyby wartością zmiennej $asdf$ była liczba to wyrażenie interpretowało by to w ten sposób: '\\12\\3' (zakładając że tą liczbą była by 2) - da się to jakoś ominąć?

Następne wyrażenie służy do usuwania z szablonu nie zamienionych zmiennych, czyli np. {<h1>$asdf$</h1>}
i ma postać:
  1. <?php
  2. $szablon = preg_replace('#{.*$.+?$.*}#','',$szablon);
  3. ?>

Cała metoda wygląda w ten sposób:
  1. <?php
  2. private function zamien(){
  3. $szablon = $this->szablon;
  4. foreach($this->dane as $zmienna => $wartosc){
  5. $szablon = preg_replace('#{([^{]*)($'.$zmienna.'$)([^}]*)}?#','1%%*%%'.$wartosc.'3',$szablon);
  6. }
  7. $szablon = preg_replace('#{.*$.+?$.*}#','',$szablon);
  8. $szablon = str_replace('%%*%%','',$szablon);
  9. return $szablon;
  10. }
  11. ?>


Prosiłbym o sprawdzenie tych wyrażeń i ewentualną poprawę.
Go to the top of the page
+Quote Post

Posty w temacie
- Frublowski   [php]Wyrażenia regularne   31.03.2007, 12:21:02


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: 31.07.2025 - 06:28