Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_replace i '$1' w funkcji
hevellius
post 28.04.2009, 08:16:08
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 19.06.2006

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


witam, chcialbym zrobić w tekscie coś w stylu includowania plików, np jeśli w ładowanym pliku jest {include:pliczek} to zastępuje tekst wynikiem funkcji
template::loadf('pliczek') i on sobie ładuje z pewnego folderu 'pliczek.tpl'

robię coś takiego
  1. <?php
  2. $pattern = '/{include:(w+)}/i';
  3.    $replacement = '$1';
  4.    $content = preg_replace($pattern, template::loadf($replacement), $content);
  5.    return $content;
  6. ?>


tyle, że wtedy jak napotka w tekscie ciąg typu {include:pliczek}, to wywala błąc, że nie może otworzyć pliku $1.tpl (wiadomo dlaczego:P)
dlatego mam pytanie, czy jest możliwość, żeby użyć '$1' jako argumentu funkcji, żeby dostawała ona nazwę którą napotka w tekscie zamiast dosłownie '$1'?

myślałem o pętli preg_match() i jakoś w pętli z wyniku to spróbować zmieniać, ale jeśli ktoś ma lepszy pomysł, to będę wdzęczny za rady i opinie:)
Go to the top of the page
+Quote Post
Spawnm
post 28.04.2009, 09:08:48
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




zainteresuj się preg_replace_callback" title="Zobacz w manualu PHP" target="_manual i 3 przykładem z manuala.
Go to the top of the page
+Quote Post
dr_bonzo
post 28.04.2009, 09:24:07
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


^^ powyzsze rozwiazanie jest lepsze.



To co chciales to musialbys wykonac z modyfikatorem /e - eval.

jakos tak:
  1. <?php
  2. $content = preg_replace($pattern . '/e', 'template::loadf("1")', $content);
  3. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
hevellius
post 28.04.2009, 10:44:49
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 19.06.2006

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


Spawnm, niestety callback to za dużo kombinacji, ale dzieki tak, czy siak;]

dr_bonzo - dzięki wielkie, dokładnie o to mi chodziło:)
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: 14.08.2025 - 05:13