Ответы пользователя по тегу Регулярные выражения
  • Необходимо переписать preg_replace()?

    Folour
    @Folour
    Как-то так
    ...
        //Из модификаторов убрать e
        $modifiers = ($this->language_data['CASE_SENSITIVE'][$k]) ? '' : 'i';
    ...
        //Заменить это
        $stuff_to_parse = preg_replace(
            "/([^$disallowed_before])($keyword)(?=[^$disallowed_after])/$modifiers",
            "'\\1' . $func2('\\2', '$k', 'BEGIN') . '<|$styles>' . $func('\\2') . '|>' . $func2('\\2', '$k', 'END')",
            $stuff_to_parse
        );
    
        //На это
        $stuff_to_parse = preg_replace_callback(
            "/([^$disallowed_before])($keyword)(?=[^$disallowed_after])/$modifiers",
            function($matches) use($func, $func2, $styles, $k) {
            return $matches[1].
                       $func2($matches[2], $k, 'BEGIN').
                       '<|'.$styles.'>'.
                       $func($matches[2]).
                       '|>'.
                       $func2($matches[2], $k, 'END');
            },
            $stuff_to_parse
        );
    Ответ написан
    4 комментария