Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] filtrowanie tekstu
mateomm
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 23.07.2007

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


Witam!

Chciałbym zrobić dynamiczne podświetlanie tekstu za pomocą wyrażeń regularnych, tzn.

mam zbudowany słównik:

  1. <?php
  2. $words = array('/(s+)slowo1(s+)/', /(s+)'slowo2(s+)/', /(s+)'slowo3(s+)/');
  3. ?>


oraz tablice z tekstem alternatywnym oraz text w stringu.

Napisałem sobie wyrażenie regularne, które podświetla mi wszystkie słowa:

  1. <?php
  2. $parsedComponent = preg_replace( $words, $replacements, $text);
  3. ?>


Jak mam przerobić powyższe wyrażenie, aby słowa w tekście podświetlały mi się jak obecnie z małym wyjąkiem. Jeśli słowo trafi się w linku to niech zostanie niezmienione, np.

org. ala ma kota <a href="#">kot ma ale</a>

to po zamianie bedzie
ala <b>ma</a> kota <a href="#">kot ma ale</a>

Z góry dzięki wielkie za pomoc.
Próbowałem to zrobić na wszelkie możliwe sposoby, ale ciągle mi sie nie udawało

Pozdrawiam
M.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
elemek
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 24
Dołączył: 14.08.2008

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


  1. <?php
  2. '#.+?#is',
  3. $text,
  4. $links,
  5. PREG_SET_ORDER
  6. );
  7.  
  8. $i=0;
  9. $parsedComponent = preg_replace(
  10. '#.+?#ise',
  11. '\"{__link\".$i++.\"}\"',
  12. $text
  13. );
  14.  
  15. $parsedComponent = preg_replace( $words, $replacements, $parsedComponent);
  16.  
  17. $parsedComponent = preg_replace(
  18. '/{__link(d+)}/e',
  19. '$links[$1][0]',
  20. $parsedComponent 
  21. );
  22. ?>


Ten post edytował elemek 22.08.2008, 12:09:39
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 08:21