• 16-04-2019, 19:53:47
    #1
    Merhaba,

    PHP de yazmış olduğum bir işlem içinbelirli bir kelimeyi başka bir kelimeyle değiştirebiliyorum.

    İstediğim şey şudur,

    Herhangi bir kelime veya tanımlayacağım cümle varsa içeriği hiçbir şekilde post etmesin.

    Yardımlarınız için teşekkür ederim.
  • 16-04-2019, 19:56:40
    #2
    <?php
    $veri  = 'kelime';
    $yasaklar = 'kelime|cümle';
    if(preg_match('@('.$yasaklar.')@',$veri)) echo 'devam Etme';
    r10 kodu bozuor spanı kaldır
  • 16-04-2019, 19:57:41
    #3
    teşekkür ederim bir deneme sağlayıp dönüş yapayım.
  • 16-04-2019, 20:07:15
    #4
    function banlist( $translated_text, $untranslated_text, $domain ) {
      
      $banned_words = array ( 'Bad' , 'Very Bad' , 'Badder' , 'Baddest Word' ) ;
      $replacement_text = "<span class="banned"> ***** </span>" ;
      
      $translated_text = preg_replace ( $banned_words, $replacement_text, $translated_text ) ;
      return $translated_text ;
    }
    
    
    add_filter( 'gettext', 'banlist', 20, 3 );
    Bu işinizi görebilir hocam. Daha önceden bir projede özelleştirip kullanmıştım.

    Kaynak: Github

    Ek: Kütüphane olarak isterseniz BanBuilder kütüphanesini kullanabilirsiniz. İncelemek isterseniz: ​BanBuilder Library​​​
  • 16-04-2019, 20:44:46
    #5
    yapamadım :S

    şimdi şöyle bir function.php dosyam var

    function ClearText($string)
    {
     $string = @str_replace("BJK", 'Beşiktaş', $string);
    bu kodun hemen altına tek satırlık bir kod olsun istiyorum mesela "Galatasaray" yazınca tüm yazdığı içeriğin hiçbir şeyini gönderemesin.
  • 16-04-2019, 21:17:38
    #6
    $post = $_POST['metin'];
    $yasak = ['ysak1','yasak2','vs'];
    
    function kelimekontrol($post,$kelime){
        foreach ($yasak as $v) {
            if (strstr($post, $v) !== FALSE) {
                return false;
            }
            
        }
    }
    Şeklinde kelimelerini tek tek kontrol edebilirsin, fakat bu hali ile pek kullanışlı sayılmaz. preg_match ile yasaklı kelimeleri değiştirmen daha uygun bir çözüm olur.
  • 17-04-2019, 13:38:57
    #7
    birenksec adlı üyeden alıntı: mesajı görüntüle
    $post = $_POST['metin'];
    $yasak = ['ysak1','yasak2','vs'];
    
    function kelimekontrol($post,$kelime){
        foreach ($yasak as $v) {
            if (strstr($post, $v) !== FALSE) {
                return false;
            }
            
        }
    }
    Şeklinde kelimelerini tek tek kontrol edebilirsin, fakat bu hali ile pek kullanışlı sayılmaz. preg_match ile yasaklı kelimeleri değiştirmen daha uygun bir çözüm olur.
    Bu işlerde acemiyim bir türlü beceremedim gitti
  • 17-04-2019, 13:51:20
    #8
    ITmaster adlı üyeden alıntı: mesajı görüntüle
    Bu işlerde acemiyim bir türlü beceremedim gitti
    Fonksiyon kodunu php dosyası içine yerşeştirin. Daha sonra kelimekontrol($post); şeklimdr gönderin. Fonksiyondan gelen vevap false ye denk değil ise post geçerlidir.
  • 17-04-2019, 18:01:26
    #9
    strstr fonksiyonunu araştırın.