Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyrażenie regularne
Forum PHP.pl > Forum > Przedszkole
dado
Witam piszę skrypt podmieniający jakiś tam tekst o postaci np:
Cytat
buty to są takie przedmioty które wkłada się na nogi

na tekst z synonimami o postaci:
Cytat
[buty|obuwie] to są takie przedmioty które wkłada się na nogi


Problem polega na tym że przy ponownym wciśnięciu akcji generowania tekstu z synonimami znów podmieniane są te frazy które wcześniej zostały już zamienione na bbcode z synonimami:
Cytat
[[buty|[buty|obuwie]]|[buty|obuwie]] to są takie przedmioty które wkłada się na nogi


Do podmiany słów uzywam funkcji preg_replace:
  1. //preg_replace('/slowo/', '[slowo|wyraz]', $data);
  2. $data = preg_replace('/'.$item['from'].'/', $item['to'], $data);


I teraz jak skonstruować wyrażenie które nie będzie podmieniać fraz zawartych w nawiasach []?
vee
Nie wiem czy dobrze zrozumiałem, ale spróbuj:
  1. $data = preg_replace('/'.$item['from'].' /', $item['to'].' ', $data);


Dzięki dopisaniu spacji wyrażenie nie będzie pasowało do tego, co masz w nawiasach kwadratowych w tekście:

Kod
//preg_replace('/slowo /', '[slowo|wyraz] ', $data);
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.