За последние 24 часа нас посетили 20569 программистов и 1008 роботов. Сейчас ищут 373 программиста ...

Помогите разобраться с функцией

Тема в разделе "Сделайте за меня", создана пользователем ravivc, 19 июн 2019.

  1. ravivc

    ravivc Новичок

    С нами с:
    19 июн 2019
    Сообщения:
    2
    Симпатии:
    0
    На сайте есть функция отвечающая за поиск слов и их замену. Но она работает только с латинскими символами, возможно ее переделать на кириллицу или добавить кириллицу к уже имеющейся латинице? Надеюсь кто-то поможет...

    PHP:
    1. function ae_filter_badword($content){
    2.         // filter badwords
    3.         $filter_word     = ae_get_option('filter_keywords');
    4.         $filter_keywords = explode(',', $filter_word);
    5.  
    6.         if(!empty($filter_keywords)){
    7.             foreach ($filter_keywords as $word) {
    8.                 if($word){
    9.                     $partern = '/\b' . trim($word) . '\b/i';
    10.                     $content = preg_replace($partern, " ***", $content);
    11.                 }
    12.             }
    13.         }
    14.         return $content;
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    по логике:
    PHP:
    1. <?php
    2.  
    3. $string = 'ыпыупм,мфукмыу,ыукпм,ddd';
    4.  
    5. echo trim ( str_repeat ( ' ***,', substr_count ( $string, ',' ) ?: 1 ), ',' );
     
  3. ravivc

    ravivc Новичок

    С нами с:
    19 июн 2019
    Сообщения:
    2
    Симпатии:
    0
    Спасибо большое за ответ, но так как я полный нуб ничего не понял...

    Та функция, которая я написал выше выполняла роль фильтра «плохих слов в коментах» на сайте и меняла их на «****». Список этих слов прописывается в админке сайта заранее.

    Я думал вот эти 2 строки отвечают за то что понимает только латиницу

    $partern = '/\b' . trim($word) . '\b/i';

    $content = preg_replace($partern, " ***", $content);


    А в вашем примере я так понимаю нужно самому прописывать внутри функции «плохие слова»?
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    а тьфу сорян, переменную пропустил $content
    --- Добавлено ---
    PHP:
    1. <?php
    2.  
    3. $string = 'сцука,бан,мне,скот';
    4.  
    5. $content = <<<EOV
    6. Однажды, в студенную зимнюю пору
    7. сцука примерзла бананом к забору
    8. EOV;
    9.  
    10. echo strtr ( $content, array_fill_keys ( explode ( ',', $string ), '***' ) );
     
  5. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень