Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Zamiana synonimów w tekscie
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam,

Ślęczę już nad tym dłuższy czas i jakoś nie mogę tego przeskoczyć...:/ Mam tekst z synonimami w postaci {synonim1|synonim2|synonim3...} w jakimś tekście. I teraz chciałbym znaleźć w podanym tekście dane synonimy i wybrać z niego jeden losowy. Napisałem do tej pory coś takiego:

  1. $tekst = "Lorem Ipsum is simply {synonim1|synonim2|synonim3|synonim4} printing (...) remaining essentially unchanged. It {txt1|txt2|txt3} was popularised (...) software like Aldus PageMaker {synonim1|synonim2|synonim3|synonim4} including versions of Lorem Ipsum.";
  2.  
  3. $tab = array ("synonim1", "synonim2", "synonim3", "synonim4");
  4.  
  5. $los = rand(0, count($tab)-1);
  6.  
  7. echo $wynik = preg_replace('/\{synonim1|synonim2|synonim3|synonim4\}/',"<b>". $tab[$los] ."</b>",$tekst);


Tylko w tym przypadku nie jest to to czego bym oczekiwał ponieważ każdy z synonimów jest zastępowany osobno i wychodzą jakieś dziwolągi... Poza tym do każdej grupy synonimów musiałbym zrobić tablicę, losowanie z niej i wyrażenie więc przy 100 tekstach i ponad 1000 synonimów robi się tego dosyć sporo...:/

Próbowałem to wyrażenie nieco zgeneralizować na bardziej ogólne ale niestety wtedy zamienia mi wszystkie synonimy w tekście na jeden losowy z podanej tablicy... Oczywiście powodem tego jest taka konstrukcja jaką napisałem...:

  1. echo $wynik = preg_replace('/\{[a-zA-Z0-9\|]*}/',"<b>". $tab[$los] ."</b>",$tekst);


Więc wracając do pierwszego przypadku. W sumie możnaby zrobić od biedy jakąś bazę danych z synonimami... Tylko jak konstrukcję z pierwszego zapytania zmusić do tego żeby zamiast takiego wyniku:

Lorem Ipsum is simply synonim3|synonim3|synonim3|synonim3 printing (...) remaining essentially unchanged. It {txt1|txt2|txt3} was popularised (...) software like Aldus PageMaker synonim3|synonim3|synonim3|synonim3 including versions of Lorem Ipsum.

Otrzymywać taki:

Lorem Ipsum is simply synonim3 printing (...) remaining essentially unchanged. It {txt1|txt2|txt3} was popularised (...) software like Aldus PageMaker synonim3 including versions of Lorem Ipsum.

Jeśli macie jakiś pomysł na to to proszę o jakąś podpowiedź. Z góry dzięki i pozdrawiam, Ł
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 19:47