Задать вопрос
Morfeey
@Morfeey

Обрезка превью, способы реализации, кто что посоветует?

Имеется сайт, у которого есть некий анонс состоящий из html.
Способ который я придумал:
Написать регулярку для поиска текста между тегами (нужна помощь с этим)
Пробежаться по листингу совпадений и заменить найденное на пустоту.

Не претендую на качество решения, с удовольствием посмотрю на ваши предложения, а лучше на способы реализации.
P.S: php 4.4

Есть полурабочий пример, с косяками с регуляркой из интернета

function truncate_html ($source, $length = 100) {

        $matches = array();
        preg_match_all('/(<\/?([\w+]+)[^>]*>)?([^<>]*)/', $source, $matches);

        $replace_list = array();
        $temp_tength = 0;

        $not_replace = array('h1', 'img');
        $razn = 0;
        $result = $source;
        foreach ($matches[3] as $key => $match) {
            $tag_name = $matches[2][$key];
            if (!in_array($tag_name, $not_replace)) {
                $len_match = strlen($match);
                $temp_tength += $len_match;
                $replace_all = false;
                if ($temp_tength>$length && strlen($match)!==0) {
                    $razn = $length - $temp_tength;
                    $temp_item = substr($match, $razn);
                    $result = str_replace($temp_item, '', $result);
                    $replace_all = true;
                }
                if ($replace_all === true) {
                    $result = str_replace($match, '', $result);
                }
            }

        }
    return $result;
}

  • Вопрос задан
  • 50 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Вы из 2007-го вывалились?
Используйте simplexml для парсинга HTML. Ну или более продвинутые nokogiri, phpquery и т.п.
Вручную регулярками парсить не надо.
PHP 4.4 использовать не надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽