![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
ostatnio piszę system wymiany linków kontekstowych i natknąłem się na pewien problem. Aby nie wdrażać całego systemu postanowiłem napisać mały przykładzik:
Oczekiwany wynik: replaced_test sample Wynik który powstaje: replaced_test replaced_sample Wniosek? preg_replace zamienia również patterny, które są zamiennikami dla patternów, które mają być zamienione. Jak uniknąć sytuacji, aby to, co jest zamiennikiem juzzostało na zawsze, bez zamieniania? Problem dość ciekawy, czekam na sugestie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam, Athlan |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Jeśli argumentami funkcji preg_replace" title="Zobacz w manualu PHP" target="_manual są tablice, to dla każdej pary elementów tych tablic preg_replace() wykonywane jest oddzielnie (tak jakby preg_replace() umieścić w pętli)
Żeby to obejść trzeba: 1. Znaleźć jakiś identyfikator który nie występuje ani w szukanym ani w zamienianym tekście, np: 'b3fwe0saf32f' 2. Dodać ten identyfikator do szukanych danych: Kod 'To jest test a dobre sample można znaleźć na ...' => 'To jest test:b3fwe0saf32f a dobre sample:b3fwe0saf32f można znaleźć na ...' 3. Zamieniać dane z identyfikatorami tą twoją funkcją preg_replace |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 15:07 |