Убрать вступительный текст из полного. Есть решение

Текст в блоге убран под кат.

На странице блога все нормально: видим вступительный текст (то что находится в $post.text_before_cut)

При переходе по ссылке "Читать далее" видим полный текст (тот что находится в $post.text)

Задача из полного текста ($post.text) удалить вступительный текст ($post.text_before_cut)

Делаю так

$ptbc = $post.text_before_cut

$post.text|regex_replace:"/`$ptbc`/xm":""

Получаю страницу без теста вообще: Заголовок, а под ним ничего

Проблема, скорее всего где-то в регулярке .. но вот где?

1 ответ

  • 2
    Леонид Вакуленко Webasyst 6 февраля 2015 13:48 # Решение

    Внутри $ptbc наверняка много символов, которые ломают регулярку.

    То, что вы пытаетесь сделать, проще всего сделать вот так:

    {$text=explode('<!-- more',$post.text,2)}
    {if !empty($text[1])}{$text='<!--'|cat:$text[1]}{else}{$text=$post.text}{/if}

    После этого в переменной $text будет всё, что в посте идёт после ката. Если ката нет, то будет полный текст.

    Ещё рекомендую на время разработки включить отображение ошибок PHP, чтобы понимать, что где сломалось и почему.

    // UPD: исправил код, чтобы работало, если изменить надпись на кате.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите