За последние 24 часа нас посетили 17186 программистов и 1651 робот. Сейчас ищут 866 программистов ...

Как удалить все комментарии, пробелы и переносы

Тема в разделе "PHP для новичков", создана пользователем mainet, 22 янв 2014.

  1. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Есть строка str в которой храниться весь html.
    Как удалить все комментарии, лишние пробелы и переносы, но не удалять их в теге <pre> </pre> ?

    Сейчас удаляю так, но удаляет везде соответственно:
    Код (Text):
    1.  
    2. $str = preg_replace('/\s+/', ' ', $str);
    Спасибо.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    вне тега <pre> они и не отображаются больше одного
     
  3. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Пробелы есть да. Переносы на новую строку не работают.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    вне тега <pre> браузер отображает любую последовательность "пробельных символов", в т.ч. перевод строки, как один пробел.

    так скажи внятно чего ты хочешь. переносы вставить? ответ: nl2br()
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Это если у вас тип заголовка text/html, если text/plain все пробелы и т. д. будут отображены в полном объеме.
    Конечно смотря, что требуется.
     
  6. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Необходимо чтобы на всей странице буди удалены лишние пробелы и переносы, но всё что в теге <pre> осталось не тронутым. То есть в теге <pre> были переносы и пробелы.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    зачем? вне тега <pre> лишних пробелов показывать не будет браузер однако
     
  8. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    может он хочет уменьшить объем исходящего трафика? )
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    стоит начать с формулировки задачи, а не с некой реализации некоего алгоритма некого решения.
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Ну дак и убирай все, что за пре, а в пре отдавай то, что надо...
    Не пойму в чем тут собственно проблема и в чем вопрос?
    В пре одно в выводе другое... ГМ...
     
  11. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Ну дак я и спрашиваю как это сделать!!!
    Чего не понятно в вопросе: Как удалить лишние пробелы и переносы, но не удалять их в теге <pre> </pre> ? Есть строка str в которой храниться весь html.
    C пробелами разобрались. Остались переносы.
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Переносы это что?
     
  13. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    /(.+(?=<pre>)|(?<=</pre>).+)/is
     
  14. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    \r\n
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    они тоже не отображаются в html
     
  16. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Страница вообще перестает работать.
    Еще было замечено если есть в javascript комментарий типа //
    javascript выдает ошибку. Удалить везде комментарии не возможно.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    а зачем ты хочешь эти символы удалять, родимый?
     
  18. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Re: Как удалить пробелы, но не удалять их в теге <pre>

    Мне надо получить весь сжатый HTML код в 1 строчку.

    Задам вопрос так. Есть переменная $str в ней находиться весь HTML код страницы. Как удалить все комментарии, лишние пробелы и переносы во всем коде, но не удалять их в теге <pre> ?
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    фух, партизан раскололся! :D

    я тебе рекомендую заюзать внешний минифаер.

    у тебя часто возникает такая нужда, или допустим только перед помещением в бд? и зачем удалять каменты из кода? что именно ты делаешь?
     
  20. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    Это мне надо получить на выходе в браузер. Еще раз есть переменная $str которая содержит весь HTML код страницы. Мне надо его максимально сжать удалив все комментарии, лишние пробелы и переносы.
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а откуда ты получаешь весь этот код, который хочешь чистить?
     
  22. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    CMS Joomla формирует
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    оу, ну тогда наверное внешний не подойдёт.
    А часто надо чистить? зачем ты чистишь? цель очистки какая?
     
  24. mainet

    mainet Активный пользователь

    С нами с:
    31 май 2012
    Сообщения:
    77
    Симпатии:
    0
    максимально сжать html.
    Ну можно же как-то удалить комментарии из javascript / css
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    можно. я спросил про цель данного процесса.