• 03-01-2010, 23:42:52
    #1
    Eş anlamlı sözcük değiştirme ile alakalı bir şey lazım oldu. Mesela öğretmeni muallim yapacak. aylık kelimesini maaş yapacak vs. Buraya kadar her şey normal str_replace komutuyla yapılıyor ancak eğer yazıda muallim kelimesi geçerse onu da öğretmen yapması gerekiyor. Burada takıldım işte? Bunun bir çözümü var mıdır? Varsa nasıl olabilir. :S
  • 03-01-2010, 23:46:43
    #2
    Sorunuzu tam anlamamak ile birlikte anladığım kadarıyla yardımcı olmaya çalışayım. kKelimeyi direk str_replace ile değiştirebildiğiniz gibi cümle içinde ki kelimeleride değiştirebilirsiniz.

    $data = 'İbrahim bu sene Öğretmen olacak.';
    $data = str_replace('Muallim','Öğretmen',$data);
    Yani string'in uzunluğu ne olursa olsun içinde geçen tüm kelimeleri replace edebilirsin. Eğer değişkenin içinde "öğretmen" geçip geçmediğini nasıl bulacağım diyorsan strpos komutu işini görür.
  • 03-01-2010, 23:49:39
    #3
    Yok hocam şöyle str_replace i çok iyi biliyorum. Mesela bir yazımda
    İbrahim öğretmen olacak geçiyor. Bunu
    İbrahim muallim olacak yapmalı.

    Bir başka yazımda ise
    Ali muallim iyidir diyor. Bunu da
    Ali öğretmen iyidir yapmalı.

    gibi gibi.

    Dizi değişkenler oluşturup str_replacele değiştiriyorum ancak kelimeler iki yönlü değişmiyor. Umarım anlatabilmişimdir.

    strposu da biliyorum ancak 200den fazla kelime var. Her kelimeyi strposla arattırıp eğer varsa değiştirmek pek kolay olmuyor. Çift yönlü düşünürsek 200 + 200 = 400 kelime yapıyor...
  • 04-01-2010, 00:18:08
    #4
    Misafir
    <?php
    
    function degistir($yazi) {
    $degistir = str_replace("Öğretmen", "Mu2", $yazi);
    $degistir = str_replace("Muallim", "Ö2", $degistir);
    $degistir = str_replace("Ö2", "Öğretmen", $degistir);
    $degistir2 = str_replace("Mu2", "Muallim", $degistir);
    return $degistir2;
    }
    
    $yazi = "Kişi Öğretmen ve Muallim olacak";
    echo degistir($yazi);
    ?>
  • 04-01-2010, 00:24:20
    #5
    Peki hocam tek kelime için mantıklı ama farzedin ki dizi değişkeni içinde yüzlerce kelime var. O zaman nasıl bir şey yapabiliriz. Bu yöntemin işe yarayacağını sanmıyorum.
  • 04-01-2010, 00:25:53
    #6
    Misafir
    Dizilerinden bir örnek verirmisin nasıl kullanıyorsun
  • 04-01-2010, 00:26:02
    #7
    ....
  • 04-01-2010, 00:29:20
    #8
    ByMsT adlı üyeden alıntı: mesajı görüntüle
    Dizilerinden bir örnek verirmisin nasıl kullanıyorsun
    Misal

    function degistir($icerik){
    $ara = array("öğretmen", "örnek", "ak", "kara");
    $degis = array("muallim", "misal", " beyaz", "siyah");
    $icerik = str_replace($ara, $degis, $icerik);
    return $icerik;
    }
    gibi...
  • 04-01-2010, 00:33:29
    #9
    ByMsT'in kodunu bir döngüye koyabilirsin
    dizinin her elemanı için bir kez işletirsin. Diziden çektiğin kelimeyi de str_replace içerisinde kullanırsın.