Kullanıcı sunulan içeriğe karşı sansürlü kelime denetleme dizisi

3 Cevap php

Ben sansürlü kelime bir dizi kurdunuz ve ben bir kullanıcı gönderilen açıklama bu kelimelerden herhangi birini içermediğini kontrol etmek istiyorum. Bunu yapmanın en etkili yolu nedir? Bütün şimdiye kadar kelime bir diziye dize bölme ve sansürlü kelime dizisine karşı denetliyor ile geldim, ama bunu yapmanın bir yolu var kıvrımlara bir his var.

3 Cevap

Ben kelime senin dizinin üzerinde döngü olur, ve Düşündüğünüz kelimesi metinde varsa kullanımı strpos bulmak için.

En verimli bir dizi olurdu, ama verimli olması için sen (gerekirse orijinal içerik başka bir DB col eğer tutulması olabilir) ekranda değil sunulması üzerinde sansür var.

Bu dizi yönetilen & edilebilir vb db, txt dosyası, php kodu, alınan

Eğer kelime varyasyonları sansür istiyorsanız bu yararlı olabilir, bu dizide dize veya regexplerde için gidebilirsiniz.

Dizeleri sürümü için kullanabilirsiniz strtr:

$replacement = "****";
$text = strtr($text, array("fuck" => $replacement, "fuckin" => $replacement));

Sıradanifade sürümü için preg_replace yasak ifadeler dizisi geçirmek için kullanabileceğiniz

$replacement = "****";
$forbidden = array('/fuck(in|er)/', '/censor(ed|ship)/');
$text = preg_replace($forbidden,  $replacement,  $text);

Siz sansürlü metinde * karakter sayısını tam olarak koymak yerine de geri çağrılarla değiştirme artırabilirsiniz.

Basit bir yolu in_array() function kullanarak olacaktır.

Kullanımı:

$censoredWords = array('word1', 'word2', 'word3');

$userSubmited = 'Some word1 and lorem ipsum dolor sid amet';

if ( in_array(explode(' ', $userSubmited), $censoredWords) )
{
    // do something
}

Ayrıca implode('|', $censoredWords); elde için çalışıyoruz ne bağlı olan preg_match() kullanabilirsiniz.

Sansürlü kelimeleri algılamaya çalışır herhangi bir yöntem muhtemelen yalancı pozitif verir unutmayın.

Bu kontrol etmek için en iyi yolu, bir işaretleme fonksiyonları kullanmak ve bir moderatör bildirmek için ziyaretçi yardım isteyin olacaktır. (O kadar yapılır gibi)

Eğer tam bir algoritma yazıyorsanız dışında, verimli olması asla ve hala kusurları olacaktır.