Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyrażenie regularne, preg_replace - wykluczenia w wyrażeniu
dado
post 5.10.2011, 10:05:43
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 2
Dołączył: 12.04.2004
Skąd: Częstochowa

Ostrzeżenie: (10%)
X----


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 []?
Go to the top of the page
+Quote Post
vee
post 5.10.2011, 13:21:01
Post #2





Grupa: Zarejestrowani
Postów: 64
Pomógł: 5
Dołączył: 16.08.2011

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


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);


Ten post edytował vee 5.10.2011, 13:21:37
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 Wersja Lo-Fi Aktualny czas: 20.07.2025 - 01:59