Regex заменяет теги на несколько строк

Я пытаюсь создать для меня утилиту, которая конвертирует текстовые документы для очистки HTML, но приклеивается на теги очистки, которые появляются на нескольких строках. Я могу поделиться ссылкой, если кто-то хочет посмотреть инструмент онлайн, но я не хочу, чтобы это сообщение было помечено как спам.

введите описание изображения здесь

Я хочу заменить <p> .. <strong> и </ p> ... </ strong> одним тегом, используя php или javascript.

Я использовал HTML Tidy.

function cleaning($string, $tidyConfig = null) 
{
    $out = array ();
    $config = array (
            'indent' => true,
            'show-body-only' => false,
            'clean' => true,
            'output-xhtml' => true,
            'preserve-entities' => true 
    );
    if ($tidyConfig == null) {
        $tidyConfig = &$config;
    }
    $tidy = new tidy ();
    $out ['full'] = $tidy->repairString ( $string, $tidyConfig, 'UTF8' );
    unset ( $tidy );
    unset ( $tidyConfig );
    $out ['body'] = preg_replace ( "/.*<body[^>]*>|</body>.*/si", "", $out ['full'] );
    $out ['style'] = '<style type="text/css">' . preg_replace ( "/.*<style[^>]*>|</style>.*/si", "", $out ['full'] ) . '</style>';
    return ($out);
}

javascript,php,

1

Ответов: 1


1

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

Например, что именно вы могли бы преобразовать следующее в и почему (так как это действительно HTML-код)?

<p>
    <strong>Minify</strong>&nbsp;<strong>CSSis
    all free</strong>
</p>
<p>

Вы можете использовать strip_tags()для преобразования образца в следующее strip_tags($text,'<p>'):

<p>
    Minify&nbsp;CSSis
    all free
</p>
<p>

Или с strip_tags($text,'<strong>'):

    <strong>Minify</strong>&nbsp;<strong>CSSis
    all free</strong>

Комбинация trim()и str_replace()может очистить ее до одной строки с чем-то вроде:

function cleanText($str,$keep) {
    $str = trim(strip_tags($str,$keep));
    return str_replace(array("
","
","
","	"),' ',$str);
}

Очень рекомендуем вам обновить свой вопрос для ясности и желаемого конечного результата.

JavaScript, PHP,
Похожие вопросы