Эта тема на forum.dklab.ru


ANick: MS WORD
Существует ли какой-нибудь php модуль (функция или класс) удаляющий лишний html код из документов word экспортированных как веб-страница?
Юрий Насретдинов:
ANick:
Нету и быть не может. Потому что это не лечится...
ANick:
Ну почему же? Лечиться всё, только лечить мы умеем не всё :) Мне нужно всего лишь, чтобы вырезался код между <body …> </body> и удалялись тэги вроде span,style или class. CSS, заливка и тд мне всё равно не нужны (это всё потом в шаблон вставляется). А регулярными выражениями это всё удалять замучаешься…
Юрий Насретдинов:
ANick:
ну блин, регулярными выражениями проще простого:


$result=preg_replace_callback("/<body(.*)>(.*)</body>/isU",'deletevsenafig');
//**
function deletevsenafig($data)
{
return "<body>".striptags($data[1])."</body>";
}

ANick:
бррр.А как быть с доп тэгами? Так же? Их же там тучи...Хотя тупой вопрос... Вот только как бы он ничего важно не удалил на фиг...
Юрий Насретдинов:
ANick:
Эта штука просто вырезает все найденные тэги, и ничего более... Я честно Вам скажу - боюсь, что удалить всю радость, которую сотворил Word после сохранения в HTML, не сможет никакой модуль или функция на PHP (да и на любом другом языке программирования)...
bæv:
ANick:
Я честно Вам скажу - боюсь, что удалить всю радость, которую сотворил Word после сохранения в HTML, не сможет никакой модуль или функция на PHP (да и на любом другом языке программирования)...

Чистится всё:
1. Класс на PHP (один из... ...если поискать в интернете по словам 'clean html', то много чего найдётся): http://www.phpclasses.org/browse.html/package/1020.html

2. На javascript под IE вообще просто получается: http://home.postnuke.ru/modules.php?op=modload&name=Downloads&file=index&req=getit&lid=10
(смотрите функцию KillWord в файле quickbuild.js)
Юрий Насретдинов:
Чистится всё
Насчет "все" я не уверен. Может, самые заметные изменения Word'а оно почистит, но не более того. Я повторяю, почистить все невозможно, даже если это редактировась Dreamweaver'ом, который довольно "чистый" код дает (по сравнению с Word или FrontPage) ! Я помню, как долго я чистил код, который DreamWeaver нарисовал - дизайнер постарался...
Дмитрий Эсс:
yUAC:
Давай проведём эксперимент.
Юрий Насретдинов:
Дмитрий Эсс:
Давай. У меня этих библиотек нету ;)
Дмитрий Эсс:
yUAC:
А скачать? Ты даже ещё не видел код класса, а уже говоришь, что он не работает. Прежде чем делать такие резкие выводы, надо этот класс протестировать. И только тогда, если он работает некорректно, то можно написать сюда об этом. Как это сделал Дмитрий Попот в теме про SQLite.
Юрий Насретдинов:
А скачать
Попробуй скачать. Первый файл там вообще ужасно тормозит, к тому же требует залогиниться, во втором какая-то фигня, просто кусок кода, без ничего, даже без примера применения. Хотя в принципе видно, что он кое-что убивает, но явно далеко не все.
Дмитрий Эсс:
Извеняюсь, не посмотрел. Давать свой e-mail ради того, чтобы проверить этот класс я не буду.

З.Ы. Тему придётся капитально подчистить.
bæv:
Хотя в принципе видно, что он кое-что убивает, но явно далеко не все.

И что же он "не убивает"? (Вообще, интересно. Что такое -- не поняли. Как работает -- не видели. А вывод -- сделали...)
"Кусок кода" -- "патченный" файл от WYSIWYG-редактора Quickbuild с http://vietdev.sourceforge.net (Там, кстати, в начале файла в комментариях есть адрес..).

C php-классом -- извините, но phpclasses.org, пожалуй, самое большое собрание php-классов в сети. Учитывая, что там много чего интересного, по-моему, можно и зарегистрироваться... (То что у Вас медленно качалось -- так там же при скачивании сначала выбор "зеркал" идёт. Может просто неудачно "зеркало" выбрали?)
bæv:
Извиняюсь, надо было сразу написать -- код на javascript не файл "чистит", а используется для вставки "копи/пейстом" текстов из Word'а для публикации в интернете.
Юрий Насретдинов:
сначала выбор "зеркал" идёт
Ну я-то выбрал Russian FederATION, конечно... Но нужно же еще дождаться, пока этот набор зеркал появится... Не можете эти 3 Кб злосчатсные на форуме приаттачить чтоли ?
baev:
Вот это я верю, что оно будет нормально работать. Я же имел ввиду уже готовый файл...
ANick:
Не можете эти 3 Кб злосчатсные на форуме приаттачить чтоли ?Вот это я верю, что оно будет нормально работать. Я же имел ввиду уже готовый файл...
bæv:

baev:
Вот это я верю, что оно будет нормально работать. Я же имел ввиду уже готовый файл...

Попробовал с готовым файлом -- чистится ВСЁ. Другое дело -- там сам скрипт так устроен, что от файла остаётся только то, что между тегами 'body'. Так что, для той функции, о которой речь, нет разницы -- вставляется целый файл или только кусок из него (всё остальное уже "почищено" другими функциями).

(Да, насчёт "аттача" -- во-первых, извините, не сообразил. Во-вторых, класс привёл только "для примера" -- он там не единственный -- честно говоря, просто смутила категоричность утверждения "Нету и быть не может. Потому что это не лечится...")
DmitriyPopov:
Как это сделал Дмитрий Попот в теме про SQLite.
Сами Вы Дмитрий Эвв :-D
Дмитрий Эсс:
Дмитрий Попов:
Ну опечатался, опечатался =).
Дмитрий Котеров:
Ха-ха :-)
Ну что, закрываем топик?
Евгений Бондарев:
Вот у Круглова есть хороший ЖабаСкриптовый вариант: http://www.kruglov.ru/useful/cleanhtml/
Дмитрий Котеров:
Ну вот, по второму кругу пошли.
Точно закрываем.

Эта тема на forum.dklab.ru