• 26-12-2007, 11:18:31
    #1
    Sitemde bir sayfada shoutbox kullanıyorum, bu shoutboxa yazılan mesajların bazılarında harfleri çok uzatan üyelerim var. Mesela; soruuuuuu,cevappppp gibi. Kullanıcı kelimelerdeki harfleri gereksiz uzattığında ona bir uyarı gitmesini istiyorum, bunu nasıl yapabilirim?
  • 26-12-2007, 17:23:45
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    benim aklıma tek gelen.
    str_replace ile bu kelimeleri tek tek belirleyip değiştirmek.yada filtreleme tekniği.filtrelemede de aynı şekilde tek tek kelimeleri belirlemen gerekir.
  • 26-12-2007, 17:34:47
    #3
    Üyeliği durduruldu
    benim aklıma başka bişielr de geliyor
    harf bazlı oynarsın mesajda ama çok karışık olur algoritma kullanman filan gerekir
    onun yerine str_replace ile de yapabilirsin misal
    str_replace("aaaa", "", $data);
    str_reaplce("bb", "", $data);
    bunun içinde çok kombinasyon gerekebilir gerçi 2 taneli yazarsan her harften çözülür
    sanırsam. ama saat gibi şeylerde sorun yaratır onlarıda ayırmak için ayrı bi uygulama
    gerekir.
    harflere bölersin mesajı sonra
    while() yada for() gibi döngülerle harfleri tek tek bi değişkene .= yöntemi ile eklersin
    önceki harf ile şimdiki harf aynı ise atlar if() kullanırsın yani.
    Kodların örneklerini yazamıycam. Karışık oldu bayabi kendine göre yazman gerekir.
  • 26-12-2007, 17:35:12
    #4
    bir shoutbox ta gördüm, vbulletin forum sitesinde adam kendi kodlarıyla yapmış, kodlar hakkında da tek bilgi vermiyor yapmak için uğraştım ama olmadı.


    ahmetpasha adlı üyeden alıntı:
    while() yada for() gibi döngülerle harfleri tek tek bi değişkene .= yöntemi ile eklersin
    önceki harf ile şimdiki harf aynı ise atlar if() kullanırsın yani.
    bu olay sanırım dediğim olay.
  • 26-12-2007, 17:40:04
    #5
    kisa bir regex deseni ile halledebilirsiniz, bence o yöne bakin
  • 26-12-2007, 22:44:27
    #6
    Haymac'ın dediği gibi a-zA-Z arasındaki harfleri bir üst limite kadar tekrar ettirip kalanını silmek en mantıklı yol.
  • 27-12-2007, 00:46:03
    #7
    Üyeliği durduruldu
    Çok basit bir fonksiyon yazdım işini görür değişik bi çoq şey yazılabilir...

    <?
    function harfara($data){
    if(ereg("aaa", $data) or ereg("bbb", $data)) return true;
    else return false;
    }
    
    $kelime = "MahiriX";
    
    if(harfara($kelime)) echo "<script>alert(\"Aynı Harf Tekrarlandı\")</script>";
    else echo $kelime;
    ?>
  • 29-12-2007, 03:03:57
    #8
    Kesin cozum

    $degisecek     = array('/&+/','/\?+/','/#+/','/!+/');
    $degistir     = array('&','?','#','!');
    $string     = "a dfasdfasd &&&&&&&& !!!!! ##### ?????????";
    $string = preg_replace($degisecek, $degistir, $string);
    echo $string;

    Yada soyle yaparsin. bu daha mantikli.

    $text = "aa, aaaa, aaa,";
    $text = preg_replace('~a{4,}~', 'a', $text);
    echo $text;
    burdan cikti: aa, a, aaa,

    yani yazilan 4 harf ve ustuyse tek harfe dusuruyor.
    saygilar


    ---------------------

    Rapidme
    Rapidshare application

    ---------------------