witam,
potrzebuję pomocy z wyszukiwaniem po wyrażeniach regularnych.
Sprawa wygląda następująco:
Przeszukuję artykuły pod kątem określonego słowa kluczowego, np. "internet". Jeśli słowo zostanie odnalezione, jest ono obejmowane znacznikami [link] z określonym ID, w efekcie końcowym otrzymuję:
"jakiś tekst artykułu [link=12345]internet[/link] inny tekst".
Wszystko ok, ale do czasu.. gdy ponownie zechcę znaleźć to samo słowo kluczowe. Jeśli słowo "internet" jest już objęte znacznikiem [link], to nie może ono zostać wyszukane drugi raz i ponownie objęte znacznikiem. Powinno zostać zamienione kolejne pasujące w artykule słowo, jeśli istnieje jeszcze jakieś "wolne" pasujące.
Zatem jak wyłączyć z wyników wyszukiwania słowa już objęte znacznikami [link=ID][/link]?
Lub inaczej: jak sprawdzić czy w tekście jest wolne słowo kluczowe (nie objęte [link]) i objąć je nowym znacznikiem?
Próbowałem coś kombinować z wyrażeniem regularnym:
#\[link=.*?\](.*?)\[/link\]#si
za jego pomocą przy wyświetlaniu artykułu zamieniam przez preg_replace_callback() słowa objęte [link] na odnośniki.
Może da się jakoś to łatwo przekształcić, by wyszukiwało wszystkie pasujące oprócz już objętych znacznikami?
pozdrawiam