php фильтр фраза - PullRequest
       1

php фильтр фраза

1 голос
/ 17 июля 2011

Как фильтровать phrase использовать php?Может ли кто-нибудь дать мне вызов функции?

, например, если я хочу отфильтровать фразу «нет», «это» из предложения There are no user contributed notes for this page.

, чтобы предложение возвращалось как There are user contributed notes for page.Спасибо.

<?php
function filterBadWords($str)
{
    $badwords = array('no','this');
    $replacements = " ";
    foreach ($badwords AS $badword)
    {
          $str = eregi_replace($badword, str_repeat(' ', strlen($badword)), $str);
    }  
    return $str;
} 

$string = "There are user contributed notes for page.";
print filterBadWords($string); // this will filter `no` from `notes`
?>

Ответы [ 2 ]

2 голосов
/ 17 июля 2011
$text = preg_replace('/\b(?:no|this)\b ?/i', '', $text);

Edit:

Теперь он удаляет пробел, если он находит один после слова, так что вы не получите два пробела подряд.

$text = 'There are no user contributed notes for this page.';
$text = preg_replace('/\b(?:no|this)\b ?/i', '', $text);
echo $text;

Выходы: для страницы есть пользовательские заметки.

Обновление

Если вы хотите использовать массив, чтобы упростить управление отфильтрованными словами, вы можете сделать это:

function filterWords($string){
    $bad_words = array('no', 'this');
    return preg_replace('/\b(?:'.implode('|', $bad_words).')\b ?/i', '', $string);
}

echo filterWords('There are no user contributed notes for this page.');
0 голосов
/ 17 июля 2011

Использование str_replace

str_replace(array('no', 'this'), '', $text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...