Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_replace, wyrażenie regularne
Forum PHP.pl > Forum > PHP
zzeus
Witam,
proste pytanie, dlaczego w podanym słowie "celów" skrypt nadaje link na część słowa, czyli "cel". Jak zrobić żeby nadawał tylko na całe słowa "cel".
  1. preg_replace('@(\bcel\b)@iu', '<a href="">$1</a>', 'celów', 1)
Kofel
Spróbuj takiego regexpa:
  1. /(\S*cel\S*)/iu


preg_replace('/(\S*cel\S*)/iu', '<a href="">$1</a>', 'sdadasasddas celów dsaadssaddas', 1);
zzeus
  1. /(\S*cel\S*)/iu

bierze całe słowo, czyli zrobi link z całego słowa "celów",a mi chodzi o to żeby w ogóle nie brało pod uwagę słowa "celów", tylko i wyłącznie pełne słowa "cel"
Michasko
Jak sprawdzam, to Twój regex z pierwszego posta robi dokładnie to, co napisałeś...
  1. $bla = 'celów cel celaasd';
  2. $bla = preg_replace('@(\bcel\b)@iu', '<a href="">$1</a>', $bla, 1);
  3. echo $bla;
- i link jest tylko na 'cel' (wynik: click)
zzeus
Link który dałeś do sprawdzenie nie działa.
Może to kwestia konfiguracji serwera, bo ja sprawdzałem na 3 i na 3 nie działa.
Michasko
Ups. Tutaj działający -> https://dl.dropbox.com/u/16940002/regex.png
zzeus
No niestety, u mnie to nie działa, ktoś ma jeszcze jakiś pomysł jak to ugryźć?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.