Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z preg_replace, przy własnym systemie szablonów
Brand
post 3.03.2010, 20:47:22
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2009

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


Witam. Piszę własny system szablonów utknąłem przy zamianie zmiennych oraz tablic na kod php. Składnia ma być taka:

Dla zmiennych:
Kod
{$var}


Dla tablic
Kod
{$array:item}


Przy samych zmiennych radziłem sobie takim kodem:
  1. $tpl = preg_replace("#\{\\$(.*?)\}#si", '<?php echo $this -> var[\'\\1\']; ?>', $tpl);


Ale nie mam pomysłu jak to zrobić z tablicami. Wymyśliłem coś takiego, ale to nie działa:
  1. $tpl = preg_replace("#\{\\$(.*?)\:(.*?)\}#si", '<?php echo $this -> var[\'\\1\'][\'\\2\']; ?>', $tpl);

Wstawić tego po tym pierwszym kodzie się nie da, bo on nie rozróżnia zmiennej od tablicy i zamienia wszystko jak leci. Wstawić przed tym pierwszym kodem też się nie da, bo znowu błędnie zamienia zwykłe zmienne.

Myślę, że trzeba zrobić, żeby ten pierwszy kod nie zamieniał rzeczy które mają dwukropek w nazwie, lecz nie wiem jak to zapisać. Liczę na waszą pomoc i z góry dziękuję. smile.gif
Go to the top of the page
+Quote Post
Fifi209
post 3.03.2010, 20:55:34
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nie zmieniał czegoś co ma dwukropek czyli:

[^:]+


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
PiotrekM
post 3.03.2010, 22:59:04
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 6
Dołączył: 20.12.2009

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


pole _array powinno przechowywać tablice w tablicy
  1. $this -> _array = array('nazwa' => array('test' => 43));


  1. $tpl = preg_replace("#\{\$(.*?)\:(.*?)\}#si", '<?php echo $this -> _array[\'$1\'][\'$2\']; ?>', $tpl); // pisane z pamieci, jakby co to popraw


Ten post edytował PiotrekM 4.03.2010, 15:18:39
Go to the top of the page
+Quote Post
Brand
post 11.03.2010, 18:37:07
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2009

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


Dzięki fifi209, działa. winksmiley.jpg
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: 19.07.2025 - 17:10