Не помещается текст в ячейку таблицы

Тема в разделе "Решение различных задач по парсингу", создана пользователем Atlas, 16 сен 2018.

Метки:
  1. Atlas

    Atlas New Member Пользователи

    Регистрация:
    10 мар 2018
    Сообщения:
    59
    Приветствую!
    В ячейке таблицы есть ограничение на 32к символов.
    Соответственно если символов больше, то текст обрезается.
    Как можно сделать, чтобы остаток парсился в соседнюю ячейку, а не просто удалялся?
    Был бы очень признателен за ответ.
     
  2. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Вы зачем парсите html в ячейку?
    Удалите стили, скрипты и внутренние классы в тегах и хватит вам с головой символов
     
  3. Atlas

    Atlas New Member Пользователи

    Регистрация:
    10 мар 2018
    Сообщения:
    59
    Не хватает, статьи очень длинные.
     
  4. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    По вашим наблюдениям, какая самая большая статья попадается?
     
  5. Atlas

    Atlas New Member Пользователи

    Регистрация:
    10 мар 2018
    Сообщения:
    59
    Было 60к символов.
     
  6. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Расставьте маркеры через регулярные выражения

    Код:
    re:^(.{30000,30100})(.*?)$|<starts id="0">$1<starts id="30">$2
    re:<starts id="30">(.{30000,30100})(.*?)$|<starts id="30">$1<starts id="60">$2
    re:<starts id="60">(.{30000,30100})(.*?)$|<starts id="60">$1<starts id="90">$2
    {textend}|<starts>
    
    Потом в шаблоне вывода выдергивайте макросом REPLACE через {get}

    Код:
    [REPLACE(<starts id="0">{get}<starts|{get})]<CD_GRAN_5!>[/REPLACE] в первой ячейке
    [REPLACE(<starts id="30">{get}<starts|{get})]<CD_GRAN_5!>[/REPLACE] во второй ячейке
    [REPLACE(<starts id="60">{get}<starts|{get})]<CD_GRAN_5!>[/REPLACE] в третьей ячейке
    Пример работы регулярки на малом тексте

    [​IMG]
     
    Atlas нравится это.
  7. Atlas

    Atlas New Member Пользователи

    Регистрация:
    10 мар 2018
    Сообщения:
    59
    Спасибо, работает! Только никак не могу подружить ваш макрос со своей заменой:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Вставлял и до, и после, заменял FINAL_REPLACE на REPLACE, но работает либо одно, либо другое...
     
  8. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    [FINAL_REPLACE(........тут...потом через{break}ваши замены
     
    Atlas нравится это.
  9. Damir

    Damir New Member Пользователи

    Регистрация:
    25 дек 2020
    Сообщения:
    3
    Город:
    Уфа
    на вашем примере пытаюсь сделать:
    [REPLACE(<starts id="0">{get}<starts|{get})]<CD_GRAN_2!>[/REPLACE]
    [REPLACE(<starts id="30">{get}<starts|{get})]<CD_GRAN_2!>[/REPLACE]
    [REPLACE(<starts id="60">{get}<starts|{get})]<CD_GRAN_2!>[/REPLACE]
    не работает.
    подскажите где ошибка
     
  10. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Читайте как работает {get}
     
  11. Damir

    Damir New Member Пользователи

    Регистрация:
    25 дек 2020
    Сообщения:
    3
    Город:
    Уфа
    то есть нужно к {get} добавить {get(2)} ?
    т.е. вот так: ?
    [REPLACE(<starts id="0">{get(1)}<starts|{get(1)})]<CD_GRAN_2!>[/REPLACE]
    [REPLACE(<starts id="30">{get(2)}<starts|{get(2)})]<CD_GRAN_2!>[/REPLACE]
    [REPLACE(<starts id="60">{get(3)}<starts|{get(3)})]<CD_GRAN_2!>[/REPLACE]
     
  12. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    закажите проект, и просто наслаждайтесь...
     

Поделиться этой страницей