PHP нецензурная лексика
Я работаю над плагином WordPress, который заменяет плохие слова из комментариев случайными новыми из списка.
Теперь у меня есть 2 массива: один содержит плохие слова, а другой содержит хорошие слова.
$bad = array("bad", "words", "here");
$good = array("good", "words", "here");
Так как я новичок, я застрял в какой-то момент.
Чтобы заменить плохие слова, я использовал$newstring = str_replace($bad, $good, $string);
.
Моя первая проблема заключается в том, что я хочу отключить чувствительность к регистру, поэтому я не буду помещать такие слова"bad", "Bad", "BAD", "bAd", "BAd", etc
но мне нужно новое слово, чтобы сохранить формат исходного слова, например, если я напишу «Плохо», оно будет заменено «Слова», но если я наберу «плохо», оно будет заменено «словами», и т.п.
Моей первой мыслью было использоватьstr_ireplace
, но он забывает, было ли в оригинальном слове заглавная буква.
Вторая проблема заключается в том, что я не знаю, как поступить с такими пользователями, как «b a d», «w o r d s» и т. Д. Мне нужна идея.
Чтобы заставить его выбрать случайное слово, я думаю, что я могу использовать$new = $good[rand(0, count($good)-1)];
тогда$newstring = str_replace($bad, $new, $string);
, Если у вас есть идея получше, я здесь, чтобы послушать.
Общий вид моего сценария:
function noswear($string)
{
if ($string)
{
$bad = array("bad", "words");
$good = array("good", "words");
$newstring = str_replace($bad, $good, $string);
return $newstring;
}
echo noswear("I see bad words coming!");
Заранее спасибо за вашу помощь!