Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwanie słów nie objętych znacznikami
japcok
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 22.07.2010

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
H4eX
post
Post #2





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Można zrobić podobnie jak w tagu na pogrubienie:
  1. $s = preg_replace("/\[b\]((\s|.)+?)\[\/b\]/", "<b>\\1</b>", $s);
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 Aktualny czas: 20.08.2025 - 03:32