Misafir adlı üyeden alıntı: mesajı görüntüle
Merhabalar

Yanlış anlamadıysam böyle bir şeye ihtiyacınız var:

<?php

$cumle = "Merhaba tuvalet ne tarafta?";

if(strpos($cumle , 'tuvalet') == true) {

$esanlamlilar = array('hela','ayakyolu'); //Eş anlamlıları dizile
$rastgele = array_rand($esanlamlilar , 1); //Rastgele 1 tanesini seç
$esanlamli = $esanlamlilar[$rastgele]; //Dizi içerisinden seçileni seç
echo str_replace('tuvalet' , $esanlamli, $cumle); //Tuvaletin yerine koy.

}
herşey doğru hocam 1 şey hariç

kodunuzdaki eş anlamlı kelimeleri düzelteler çalıştırdım kodu
$cumle = "Merhaba tuvalet ne tarafta?";
 
if(strpos($cumle , 'tuvalet') == true) {
 
$esanlamlilar = array('tuvalet','abiye','kademhane','memişhane','kenef','hela','yüznumara','ayakyolu','abdesthane'); //Eş anlamlıları dizile
$rastgele = array_rand($esanlamlilar , 1); //Rastgele 1 tanesini seç
$esanlamli = $esanlamlilar[$rastgele]; //Dizi içerisinden seçileni seç
echo str_replace('tuvalet' , $esanlamli, $cumle); //Tuvaletin yerine koy.
 
}
sonuçlardan sorunlu olan: Merhaba tuvalet ne tarafta?

değişecek kelime tuvaletse , eşanlamlıları random atarken, değişecek kelimeyi random olarak atmasın.

cevabınız için teşekkür ederim.



Daryl_Dixon adlı üyeden alıntı: mesajı görüntüle
$array = array('tuvalet', 'abiye', 'kademhane', 'memişhane', 'kenef', 'hela', 'yüznumara', 'ayakyolu', 'abdesthane');

$text = 'merhaba tuvalet e gidebilir miyim yada abdesthane ye';

foreach($array as $item){

    if(strpos($text, $item) !== FALSE){

        $new_array = array_flip($array);
        unset($new_array[$item]);

        $replace = array_rand($new_array, 1);

        $text = str_replace($item, $replace, $text);

    }

}
cevabınız için teşekkür ederim hocam

değişecek kelime tuvaletse , eşanlamlıları random atarken, değişecek kelimeyi random olarak atmasın.

yani tuvalet kelimesini gidip tekrar tuvaletle değiştiriyor.

cevabınız için teşekkür ederim.