Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyrażenia regularne, Class Template
lDoran
post
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


Witam mam problem ze zrozumieniem poniżej zamieszczonej metody, a dokładnie jak działa wyrażenie: '/{([^}]+)}/e' oraz '$this->dane["\\1"]'
  1. function execute() {
  2. return preg_replace('/{([^}]+)}/e', '$this->dane["\\1"]',
  3. $this->tmpl);
  4. }


Poniżej zamieszczam pełną klasę:
  1. <?php
  2. class Template {
  3. var $tmpl;
  4. var $dane;
  5.  
  6. function Template ($name)
  7. {
  8. $this->tmpl = implode('', file($name));
  9. $this->dane = Array();
  10. }
  11.  
  12. function add($name, $value = '')
  13. {
  14. if (is_array($name)) {
  15. $this->dane = array_merge($this->dane, $name);
  16. } else if (!empty($value)) {
  17. $this->dane[$name] = $value;
  18. }
  19. }
  20.  
  21. function execute() {
  22. return preg_replace('/{([^}]+)}/e', '$this->dane["\\1"]',
  23. $this->tmpl);
  24. }
  25.  
  26. }
  27. ?>


Skrypt pochodzi ze strony: http://www.programuj.com/artykuly/www/template.php
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
cycofiasz
post
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Za pewne podmienia {jakas_nazwa_zmiennej} na wartość z tablicy $dane gdzie kluczem jest ów jakas_nazwa_zmiennej
Go to the top of the page
+Quote Post
lDoran
post
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


tak jak mówisz tylko nie rozumiem dlaczego wyrażeniu regularnym ^ jest w środku po co jest [ nawiasy klamrowe i co robi /e
kolejny problem, który mnie trapi $this->dane["\\1"] co robi: \\1
pierwszy raz coś takiego widzę, dlatego pytam poszukiwałem w googlu informacji na ten temat jednak nie znalazłem
Go to the top of the page
+Quote Post
cycofiasz
post
Post #4





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Czyli podstawy wyrażeń regularnych, polecam zapoznać się z jakimkolwiek kursem / artykułem na ich temat.

^ w nawiasie kwadratowym oznacza przeczenie zakresu znaków, w tym przypadku dotyczy ono } więc wewnątrz dopasowywanego tekstu nie może być znak }

Co do reszty pytań, to odpowiedzi na nie znajdziesz pod adresem http://pl2.php.net/preg_replace
Go to the top of the page
+Quote Post

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: 21.12.2025 - 18:02