![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 0 Dołączył: 30.04.2004 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam tekst postaci [text_1]sdfafsda[text_2]dsafdsdf[text_3] Chciałbym zamienić napisy typu [text_*] na odpowiednie wartości zmiennych, tzn. [text_1] na wartość zmiennej text_1 itd. Próbuję z czymś takim: Kod $txt=preg_replace_callback('/\[text*]/', create_function('$arg','return $$arg;'),$txt); Ale nie daje to żadnych rezultatów. Proszę o pomoc -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Voila:
Daje: Kod marek@marek-desktop:~/workspace$ php dupa.php
text 1 replace text 2 replace -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 0 Dołączył: 30.04.2004 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Niestety to co przedstawiłeś, to nie do końca mój przykład. W moim przykładzie dla zamienianych tekstów nie ma znaczników początku i końca.
Stworzyłem ostatecznie coś takiego: Kod $matches=array(); preg_match_all('/\[text_(.*)]/',$strona,$matches); foreach ($matches[0] as $k => $v) { $patterns[]='/\\'.$v.'/'; $t=substr($v,1,strlen($v)-2); $replacements[]=$$t; } ksort($patterns); ksort($replacements); $strona=preg_replace($patterns, $replacements, $strona); Ale: 1) O dziwo, dla całego kodu strony działa, a np. jako jeśli zmienna $strona dam np. Kod $strona='[text_1] fsgdgdf [text_2]'; otrzymuję komunikat: Kod Notice: Undefined variable: text_1] fsgdgdf [text_2 in C:\Program Files\wamp52\www\sokkernew\league_stats.php on line 261 [text_1] fsgdgdf [text_2] Jak już wspomniałem, dla faktycznego tekstu, na którym działam, działa to dobrze. Ktoś może wytłumaczyć o co chodzi? 2) Może da się to jakoś bardziej elegancko zapisać? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Powinno działać:
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ładnie, ładnie, aczkolwiek callback to lekka przesada:
Kod marek@marek-desktop:~/workspace$ php dupa.php
text 1 replace text 2 replace -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 167 Pomógł: 0 Dołączył: 30.04.2004 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki bendi. Kod działa dokładnie jak trzeba
![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:34 |