PHP substr HTML

Корректно разделить текст в $arItem["~PREVIEW_TEXT"] без обрезания тегов.


<?
$max_lenght = 1000;

$preview = "";
$body = "";
if (strlen($arItem["~PREVIEW_TEXT"]) > $max_lenght) {
    preg_match_all('/<([^>]+)>.*?<\/(\1)>/s', $arItem["~PREVIEW_TEXT"], $matches);
    if ((isset($matches[0])) && (count($matches[0]) > 1)) {
        foreach ($matches[0] as $match) {
            if (strlen(($preview)) < $max_lenght) {
                $preview .= $match;
            } else {
                $body .= $match;
            }
        }
    }
}

if (!strlen($body)):?>
    <div class="text"><?=$arItem["~PREVIEW_TEXT"]?></div>
<?else:?>
    <div class="service-list-preview"><?=$preview?></div>
    <div class="service-list-body"><?=$body?></div>
    <a href="#" class="visible-all">Показать все</a>
<?endif;?>

Комментарии

Популярные сообщения из этого блога

Bitrix: кнопка добавить в корзину

Битрикс: какого х*я ты ищешь в неактивных разделах

Битрикс: highloadblock значения в свойстве список