• 26-11-2012, 19:07:13
    #1
    function yasak($veri) {
    $ya = "mal";
    $explode = explode(',',$ya);
    foreach($explode as $ysk) {
    $s = strlen(utf8_decode($ysk));
    $n = '*';
    for($i=1;$i<=($s-1);$i++){
    $n .= '*';
    }
    $veri = str_ireplace($ysk,$n,$veri);
    }
    return $veri;
    }
    bu fonksiyon ile kelimeleri filtreliyorum ama örneğin
    malatya yazıncada ***atya oluyor daha iyi bir filtreleme mantığı bilen yardımcı olabilir mi ?
  • 26-11-2012, 19:53:01
    #2
    $ya = "mal ";
    veya
    $ya = " mal";

    yapabilirsiniz. Sonuçta mal diye hakaret edileceği zaman malherif yazılmıyor, ayrı yazıldığı için öyle yapabilirsiniz.
  • 26-11-2012, 20:12:02
    #3
    StarWars adlı üyeden alıntı: mesajı görüntüle
    $ya = "mal ";
    veya
    $ya = " mal";

    yapabilirsiniz. Sonuçta mal diye hakaret edileceği zaman malherif yazılmıyor, ayrı yazıldığı için öyle yapabilirsiniz.
    aynısını düşündüm ama örneğin "ben malatyalıyım" => "ben ***atyalıyım" bu şekil olabiliyor
  • 26-11-2012, 20:18:29
    #4
    $ya = " mal ";

    daha iyi olabilir aslında. Ama şöyle bi' sorun olur bu sefer da:

    İstanbulda *** alım-satım işleri...
  • 26-11-2012, 20:39:04
    #5
    function yasak($filitrele) {
    		$YasakKelimeler = "mal,aptal";
    		$yasak_kelimeler = implode('\b|',explode(',',$YasakKelimeler));
            $filitrele = preg_replace("/\b$yasak_kelimeler\b/i", '{***}', $filitrele);
            return $filitrele;
    }
    bu fonksiyon daha kullanışlı, mecbur kötü kelime listesinden malı çıkacam ama bunda malatya daki mal ı *** yapmıyor