Замена CRLF на CR

Тема в разделе "Функции поиск-замены и регулярные выражения", создана пользователем wcw2007, 17 окт 2019.

  1. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    В шаблоне вывода использую js скрипт рекламы, но при парсинге cd ломает его. в 1 строчку нельзя партнерская программа запрещает менять код.

    Пример это рабочий вариант

    <!-- begin: grattis showcase player -->
    <div class="gscp_5da785203b91b5e7645c76ff"></div>
    <script type="text/javascript">
    ............
    <!-- end: grattis showcase player -->

    Это не рабочий вариант после парсинга

    <!-- begin: grattis showcase menu -->
    <div class="gscm_5da7829a3b91b54da05c76fb"></div>
    <script type="text/javascript">
    ..........
    <!-- end: grattis showcase player -->

    Кажется все одинаково, но при сравнении текстов сервисы показывают различия и скрипты не работают, вот различия.

    <!-- begin: grattis showcase player -->¶
    <div class="gscp_5da785203b91b5e7645c76ff"></div>¶
    <script type="text/javascript">¶
    .............
    <!-- end: grattis showcase player -->¶

    Как видите переносы строк имеют какие-то символы из-за них не работают скрипты. Как сделать правильно в 1 строку нельзя тоже работать не будет.

    Вот я пытался через final replase заменить ¶| или ¶|{br2} Ничего не вышло скрипты не работают. Кодировки у обоих файлов utf-8.

    Огромное спасибо, кто поможет

    ПРОБЛЕМА РЕШЕНА в скрипте были скобки { } и включена функция поиск и замена , она срабатывала на скрипт. Нужно отключить случайный вывод
     
    Последнее редактирование: 17 окт 2019
  2. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Нашел названия для данного ключа это начало параграфа
    Сделал так в final replace
    &para;|
    U+00B6;|
    Скрипт все равно не работает, что делать при ручном копировании все скрипты работают штатно.
     
  3. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    При обычном копировании в буфер скрипты работают, только если после парсинга CD взять код и вставить в html скрипт не работает, а если взять из другого файла и просто копировать все работает, это баг CD?
     
  4. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Код:
    <!-- begin: grattis showcase player -->{br2}<div class="gscp_5da785203b91b5e7645c76ff"></div>{br2}<script type="text/javascript">{br2}............{br2}<!-- end: grattis showcase player -->
    Попробуйте в одну строку с {br2}
     
  5. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Спасибо написал 2 раза в 1 строку не работает , Копирую правильный код в notepdad или в стандартный блокнот потом обратно вставляю все работает, только после парсинга CD не работает.
     
  6. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Вот полный код

    <!-- begin: grattis showcase menu -->
    <div class="gscm_5da783ba3b91b5227a5c76fd"></div>
    <script type="text/javascript">
    (function(w, d, n, s, t) {
    w[n] = w[n] || [];
    w[n].push("5da783ba3b91b5227a5c76fd");
    t = d.getElementsByTagName("script")[0];
    s = d.createElement("script");
    s.type = "text/javascript";
    s.src = "//cdn-showcase-menu.grattis.ru/cl/scm.min.js";
    s.async = true;
    t.parentNode.insertBefore(s, t);
    })(this, this.document, "grattisShowcaseMenu");
    </script>
    <!-- end: grattis showcase menu -->
     
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Чтобы вы знали. CRLF - два нормальных символа для переноса строки. Почему ваш компилятор не обрабатывает скрипты с такими символами - вопросы к нему.

    Замените файл Content Downloader.exe (в папке с программой) этим файлом:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 84 постов.**
    Для замены CRLF на CR пользуйтесь поиск-заменой:
    Код:
    {CR_13}{LF_10}|{CR_13}
     
  8. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Для справки {br2} означает переход строки, предположительно в итоге станет
    Код:
    <!-- begin: grattis showcase player -->
    <div class="gscp_5da785203b91b5e7645c76ff"></div>
    <script type="text/javascript">
    ............
    <!-- end: grattis showcase player -->
    п.с. странно как переход строки мог повлиять на работу скрипта.
     
  9. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Заработал частично


    Спасибо но заработал частично я код вставляю в обычный html это не движок сайта парсера нет,

    В прошлой программе вот такой код счестчика li.ru НЕ РАБОТАЛ

    <!--LiveInternet counter--><script type="text/javascript">
    document.write('<a href="//Ссылки недоступны для гостей" '+
    'target="_blank"><img src="//counter.yadro.ru/hit?t38.6;r'+
    escape(document.referrer)+((typeof(screen)=='undefined')?'':
    ';s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?
    screen.colorDepth:screen.pixelDepth))+';u'+escape(document.URL)+
    ';h'+escape(document.title.substring(0,150))+';'+Math.random()+
    '" alt="" title="LiveInternet" '+
    'border="0" width="31" height="31"><\/a>')
    </script><!--/LiveInternet-->

    Сейчас заработал появилась картинка

    Но мой код не работает

    <!-- begin: grattis showcase menu -->
    <div class="gscm_5da783ba3b91b5227a5c76fd"></div>
    <script type="text/javascript">
    (function(w, d, n, s, t) {
    w[n] = w[n] || [];
    w[n].push("5da783ba3b91b5227a5c76fd");
    t = d.getElementsByTagName("script")[0];
    s = d.createElement("script");
    s.type = "text/javascript";
    s.src = "//cdn-showcase-menu.grattis.ru/cl/scm.min.js";
    s.async = true;
    t.parentNode.insertBefore(s, t);
    })(this, this.document, "grattisShowcaseMenu");
    </script>
    <!-- end: grattis showcase menu -->

    Как еще можно решить проблему?

    При ручном копировании через любой блокнот работает
     
    Последнее редактирование: 17 окт 2019
  10. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Ваша новая версия программы обрезает текст!!! Не правильно не выпускайте есть БАГ

    Исходный вариант

    <!-- begin: grattis showcase player -->
    <div class="gscp_5da785203b91b5e7645c76ff"></div>
    <script type="text/javascript">
    (function(w, d, n, s, t) {
    w[n] = w[n] || [];
    w[n].push("5da785203b91b5e7645c76ff");
    t = d.getElementsByTagName("script")[0];
    s = d.createElement("script");
    s.type = "text/javascript";
    s.src = "//cdn-showcase-players.grattis.ru/cl/scp.min.js";
    s.async = true;
    t.parentNode.insertBefore(s, t);
    })(this, this.document, "grattisShowcasePlayers");
    </script>
    <!-- end: grattis showcase player -->

    После обработки CD

    <!-- begin: grattis showcase player -->
    <div class="gscp_5da785203b91b5e7645c76ff"></div>
    <script type="text/javascript">
    (function(w, d, n, s, t)
    w[n] = w[n] )(this, this.document, "grattisShowcasePlayers");
    </script>
    <!-- end: grattis showcase player -->

    в финал replase стоит
     
  11. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Определите проблему. Опишите, в чем ее суть. Попробуем подсказать решение. Тестирование предоставленных Js не производим.
     
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Приложите файл проекта и опишите, что нажимать и куда смотреть, чтобы увидеть проблему.
     
  13. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    У меня простой проект щаблон сайта в шаблоне CD и только граница парсинга 1 парсит <title></title> и вставляется в 2 местах. Сложного ничего вообще.
     
  14. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здорово.
     
  15. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Ок постараюсь выслать проект и более детально описать чтоб не отвлекать Вас
     
  16. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Логично.
     
  17. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Уважаемый админ, вот пример бага
    Файл в прикреплении.

    Как я говорил шаблон сайта прописан в шаблоне CD у всего проекта всего 1 граница парсинга которая парсит текст между <title></title>

    А теперь баги.

    Найдите в шаблоне CD такие строки Внизу


    gscp_5da785203b91b5e7645c76ff тут 13 строк скрипта


    И после парсинга откройте html код полученного документа сделайте поиск опять gscp_5da785203b91b5e7645c76ff И тут уже будет всего 5 строк скрипта!!! Куда остальные делись??? Replacev нет поиска и замены нет, только Ваш последний {CR_13}{LF_10}|{CR_13}

    Вот закинул результат на обычный хостинг ПРОСТОЙ HTML файл никаких cms парсеров текста здесь нет голый html
     

    Вложения:

    Последнее редактирование: 17 окт 2019
  18. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Отключите макрос случайного вывода текста (он по умолчанию отключен).

    2019-10-17_15-43-57.png

    Пользуйтесь логом выполнения функций и макросов в нижней части окна предпросмотра результатов парсинга контента для разрешения подобных вопросов.
     
  19. wcw2007

    wcw2007 Member Пользователи

    Регистрация:
    15 мар 2017
    Сообщения:
    126
    Он мне нужен там будут рандомные вставки текста. А так все отлично заработало, а как он влияет я не понял на шаблон?
     
  20. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    В вашем Js есть символы { | }, которые обрабатываются функцией вывода случайного текста, так как имеют схожий с функцией синтаксис.
     

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