Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] preg_replace wyróżnianie słów
uncuncunc
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 1.04.2012

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


  1. $source = 'test asd margin-top test-kolejny margin';
  2. $a = array('margin-top','margin', 'test', 'test-kolejny');
  3.  
  4. foreach ($a as $k => $v)
  5. {
  6. $source = preg_replace('/\\b'.$v.'\\b/i', '<b>'.$v.'</b>', $source);
  7. }


W jaki sposób zamienić wszystkie słowa, te które są w tablicy? Teraz zamienia jedynie pierwsze napotkane.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Jesli chcesz to zrobić naprawdę poprawnie, to musisz zmodyfikować wyrażenie, by zamieniał tylko słowa a nie zlepek liter które pasują.

Jeśli np. zamieniasz słowo "ola" to w zdaniu
to jest OLA i mola oraz OLA i cola
to on ma zamieniać tylko słowa czyli to co napisałem dużymi. Twoje wyrażenie zaś zamieni teraz również "mola" oraz "cola" co raczej nie jest oczekiwanym rezultatem.
Jeśli byś więc poprawił to wyrażenie, wówczas problem z kolejnością by znikł z automatu
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: 3.10.2025 - 05:04