Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как избавиться от вордовских тэгов
 
 автор: Blaster   (29.06.2008 в 20:00)   письмо автору
 
 

может кто-нибудь делал такое раньше...или есть готовая реализация...
нужно удалить всю чушь, которую ворд, как известно, создает в своих файлах...

   
 
 автор: AcidTrash   (29.06.2008 в 20:51)   письмо автору
 
   для: Blaster   (29.06.2008 в 20:00)
 

Не очень понятно, из Word`а что делаете?

   
 
 автор: Blaster   (29.06.2008 в 22:41)   письмо автору
 
   для: AcidTrash   (29.06.2008 в 20:51)
 

Просто у меня для добавления материала на сайт можно использовать визуальный HTML-редактор.
Если скопировать какой-то уже отформатированный текст из ворда и вставить его в мой редактор - тест вставится, но ворд к обычному HTML добавляет какие-то свои ненужные тэги.
например:
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /><o:p></o:p>

или вот это:
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 14pt"><o:p>&nbsp;</o:p></SPAN></P>

Выглядит все это уж очень некрасиво.

   
 
 автор: AcidTrash   (30.06.2008 в 15:03)   письмо автору
 
   для: Blaster   (29.06.2008 в 22:41)
 

Да тут проще поменять редактор, чем мудрить с регулярками. :)

   
 
 автор: Blaster   (30.06.2008 в 15:22)   письмо автору
 
   для: AcidTrash   (30.06.2008 в 15:03)
 

Да это в любом встроеном визуальном редакторе такая фигня будет...они все примерно по одному принципу работают...

   
 
 автор: AcidTrash   (30.06.2008 в 15:49)   письмо автору
 
   для: Blaster   (30.06.2008 в 15:22)
 

А ручками не пробовали составлять html?
Если уж визуальный, то на вскидку могу посоветовать Namo Web Editor 5, грязи от него практически нет. А ворд, на мой взгляд - это самый мусорный редактор.

   
 
 автор: Blaster   (30.06.2008 в 18:08)   письмо автору
 
   для: AcidTrash   (30.06.2008 в 15:49)
 

Вы меня не так поняли.
Я делаю сайт для человека, который даже не знаком с таким понятием как HTML.
У этого человека весь материал хранится в doc файлах. И нужно, чтобы он сам мог просто добавлять материалы на сайт.
Я сделал простенький визуальный HTML редактор на JS, с помощью которого можно изменять размер/цвет/шрифт текста, выравнивать его, создавать ссылки и таблицы и т.п.
Если в этот редактор скопировать текст из ворда, то внешне он будет выглядить нормально, но HTML-код этого текста будет наполнен вордовским мусором.
Так вот задача - этот мусор удалить, хотя бы частично.
Думаю, большинство тех, кто делал подобные редакторы сталкивались с такой задачей.
Может кто-нибудь подскажет решение?

   
 
 автор: Эй   (30.06.2008 в 18:51)   письмо автору
 
   для: Blaster   (30.06.2008 в 18:08)
 

Сначала бы определиться, почему какой то тег - мусор, а другой - нет? Какой критерий?

   
 
 автор: Blaster   (30.06.2008 в 19:26)   письмо автору
 
   для: Эй   (30.06.2008 в 18:51)
 

Вот, нашел готовую реализацию на JS.

var s= "Текст с вордовскими тэгами";
var v = s.replace(/style\=\"(.+?)\"/gim, "");
v = v.replace(/style\=\'(.+?)\'/gim, "");
v = v.replace(/class\=\"(.+?)\"/gim, "");
v = v.replace(/class\=MsoNormal/gim, "");
v = v.replace(/\<\?(.+?)\>/gim, "");
v = v.replace(/\<o(.+?)\>/gim, "");
v = v.replace(/\<\/o(.+?)\>/gim, "");
v = v.replace(/\<v(.+?)\>/gim, "");
v = v.replace(/\<\/v(.+?)\>/gim, "");
v = v.replace(/\<w(.+?)\>/gim, "");
v = v.replace(/\<\/w(.+?)\>/gim, "");
v = v.replace(/lang\=\"EN\-US\"/gim, "");
v = v.replace(/lang\=EN\-US/gim, "");
v = v.replace(/\<st1(.+?)\>/gim, "");
v = v.replace(/\<\/st1(.+?)\>/gim, "");
alert(v);


Это точно то, что мне нужно, только язык не тот.
В регулярных выражениях я не силен, подскажите, плиз, как то же самое осуществить на PHP?

   
 
 автор: AcidTrash   (30.06.2008 в 22:08)   письмо автору
 
   для: Blaster   (30.06.2008 в 19:26)
 

Я не особо знаю какие функции для регулярок используются в JS, но может такой пример для PHP поможет.
<?php
$preg
"Текст с вордовскими тэгами";
$preg=preg_replace("#/style=\"(.+?)\"#is"""$preg);
$preg=preg_replace("#class\=\"(.+?)\"#is"""$preg);
// И так далее
?>


P.S. Мне кажется для человека не знакомым с HTML, Лучше продумать использование для его удобства bb-коды.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования