Hi!
>> По части -g - это, конечно, здорово.. :) То-то я смотрю, он в три раза
>> стал больше и тупее.. Только почему -O, а не -O2 ?
alr> IMHO, -O более верно, нежели -O2. Если компилятор понимает
alr> -O[0-...], то обычно -O у таких именно -O2 по умолчанию.
А у других -O2 может глючить. Пусть уж так останется.
>> Может, проще бежать от meta до '>' и смотреть, нет ли 'Content-Type'?
alr> Это вообще неверно. В принципе.
alr> Я про выкусывание <meta http-equiv=...>.
alr> Лучше вообще не трогать ни одного
alr> <META ... > на уровне демона. В данном случае разговор шел про то,
alr> как заставить демон делать то, что по уму должно быть втроено абсолютно
alr> в другом месте - именно в обработчиках publish, и срабатывать в момент
alr> выкладываниядокумента на диск.
В теории - это совершенно верно. Но на практике таких обработчиков publish
просто нет, а с учетом того, что publish бывает по ftp - то и не может быть. С
точки зрения экономии ресурсов, правильным является вырезание этого хозяйства
однократно. Либо в момент publish, либо потом отдельным скриптом. Но над
publish и скриптами на чужих серверах я не властен, а вырезать _надо_.
Теперь почему _надо_ вырезать (у меня на этом вырезании пунктик :).
Стандарт HTTP про <META...> ничего не говорит, естественно. Стандарт HTML 3.2
говорит (по смыслу, если надо то цитату я тоже найду) примерно следущее:
<META HTTP-EQUIV...> _может_ быть использован сервером для установки
HTTP-заголовков. Про использование броузерами нет ни слова и то, что броузеры
используют это для установки charset не более правильно, чем если они
использовали бы <META HTTP-EQUIV> для установки цвета background (Аналогия.
Тег <I> _может_ быть использован броузером для установки курсивного шрифта. Не
все броузеры так делают /не везде есть курсив/, но это не повод использовать
<I> для проигрывания музыки).
Почему _нельзя_ использовать META HTTP-EQUIV для каких-то действий со стороны
броузера тоже понятно. Стандарт HTTP разрешает преобразование содержимого в
дороге. _Естественно_, не заглядывая в это содержимое, а полагаясь только на
заголовки. И в общем случае, даже если originating сервер поставил какой-то
заголовок согласно HTTP-EQUIV, до потребителя все может дойти в совершенно
другом транспортном представлении и с другими (но корректными!) заголовками.
Я бы резал вообще все <META HTTP-EQUIV>. К сожалению, есть практика делать
Refresh через <META>. Значит нужно резать только то, что конкретно и явно
мешает ( META HTTP-EQUIV="Content-Type")
alr> убирать из тега совпавшее со вторым шаблоном, заменяя его или на ';',
alr> или на ' ', смотря в каком месте тега оно было. И пахнет все это
alr> полноценным разбором html всего документа, иначе
alr> в общем случае задача не решается. ;))
Не надо разбирать html (зачем?), хватает разборки по тегам - они не бывают
вложенными. Что касается "что вынимать", то в случае с content-type убирать
нужно весь тэг т.к. content-type есть (и обязателен) в HTTP-заголовке.
С уважением,Alex Tutubalin
--- GoldED 2.42.G1114+
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.