CREATE TABLE `synonimy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `wyrazy` varchar(250) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3359 ; -- -- Zrzut danych tabeli `synonimy` -- INSERT INTO `synonimy` (`id`, `wyrazy`) VALUES (1, 'praktycznie=w praktyce\n'), (2, 'istnienia=egzystencji=obecności\n'), (3, 'konkurencja=rywalizacja\n'), (4, 'filarów=podstaw=fundamentów\n')
I taką funkcję mającą zamieniać synonimy, której dostarczam parametr:
$text = 'praktycznie istnienia fundamentów konkurencja gwarantuje zasadniczy. Niebyt w tym gdzieś wale korbowym ulokuj jedyna w swoim rodzaju gratki..';
function losuj_synonim($text) { /*********ŁĄCZENIE I POBRANIE SYNONIMÓW Z BAZY***********/ connect_to_db(); $sql = "SELECT wyrazy FROM synonimy"; /*********ŁĄCZENIE I POBRANIE SYNONIMÓW Z BAZY***********/ $a = true; //zmienna kontrolna foreach ($pojedynczy as $key => $value) { echo 'To będzie zastąpione: <font color="red"> ' .$value. '</font> tym: <font color="red">' . $pojedynczy[$indeks] . '</font> w tekście o treści: ' . $text . '<br><br>'; $text = str_replace($value, $pojedynczy[$indeks], $text); //nadpisujemy tekst z podmienionym synonimem if($value == $pojedynczy[$indeks]) continue; else $a=false; //w innym przypadku ustawiamy zmienna kontrolna a na false żeby przerwać pętle oznaczyć udana zamianę i nie zamieniać cały czas tego samego wyrazu na rożne synonimy } else break; //jesli a==FALSE lub nie znaleźliśmy synonimu w tekście to wychodzimy z pętli foreach i w pętli while szukamy kolejnego wyrazu } } return $text; //zwracamy podmieniony tekst i przekazujemy zmienna do innej funkcji np. dodającej podmienione artykuły do blogów }
Funkcja podmienia tylko:
istnienia -> egzystencji
konkurencja ->rywalizacja
istnienia->istnienia
konkurencja->konkurencja
Co zrobić aby to działało na zasadzie, że dla któregokolwiek z tych przykładowych wyrazów w bazie, który zostanie odnaleziony w zmiennej $text czyli:
filarów=podstaw=fundamentów
zostania dokonana podmiana na synonim
filarów=podstaw=fundamentów
tak jednak żeby nie została dokonana zamiana tego samego wyrazu na to samo ?