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

Форум PHP

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

 

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

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

тема: rtf в html
 
 автор: artem_b   (05.05.2008 в 10:46)   письмо автору
 
 

Здравствуйте!
Имеем текст "One two three thour fife six seven word" отформатированный вордом и сохраненный в формате rtf. Вот как выглядит в простом текстовом редакторе:

{\rtf1\ansi\ansicpg1251\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1049\deflangfe1049{\fonttbl{\f0\froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\f11\froman\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt ?l?r ???fc};}{\f37\fswiss\fcharset204\fprq2{\*\panose 020b0604030504040204}Verdana;}{\f64\froman\fcharset128\fprq1{\*\panose 00000000000000000000}@MS Mincho;}
{\f67\froman\fcharset0\fprq2 Times New Roman;}{\f65\froman\fcharset238\fprq2 Times New Roman CE;}{\f68\froman\fcharset161\fprq2 Times New Roman Greek;}{\f69\froman\fcharset162\fprq2 Times New Roman Tur;}
{\f70\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f71\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f72\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f73\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\f437\fswiss\fcharset0\fprq2 Verdana;}{\f435\fswiss\fcharset238\fprq2 Verdana CE;}{\f438\fswiss\fcharset161\fprq2 Verdana Greek;}{\f439\fswiss\fcharset162\fprq2 Verdana Tur;}{\f442\fswiss\fcharset186\fprq2 Verdana Baltic;}
{\f443\fswiss\fcharset163\fprq2 Verdana (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1049\langfe1049\cgrid\langnp1049\langfenp1049 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\s15\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
\fs20\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 \slink16 \styrsid13515523 Body1;}{\*\cs16 \additive \fs24\lang1033\langfe1033\loch\f37\hich\af37\dbch\af11\langnp1033\langfenp1033
\sbasedon10 \slink15 \slocked \styrsid13515523 Body1 Char;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid1256829\rsid2387707\rsid2623645\rsid2972860\rsid5462508\rsid6096429\rsid7023083\rsid7475796\rsid7484429\rsid10711677\rsid12138097
\rsid12530652\rsid12806066\rsid13065642\rsid13515523\rsid14497428\rsid15479170\rsid16271179}{\*\generator Microsoft Word 11.0.6502;}{\info{\title Test}{\author reddevil}{\operator reddevil}{\creatim\yr2008\mo5\dy4\hr18\min18}
{\revtim\yr2008\mo5\dy4\hr21\min24}{\version16}{\edmins5}{\nofpages1}{\nofwords5}{\nofchars35}{\*\company org}{\nofcharsws39}{\vern24579}}\paperw11906\paperh16838\margl1701\margr850\margt1134\margb1134
\deftab708\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1701\dgvorigin1134\dghshow1\dgvshow1
\jexpand\viewkind1\viewscale110\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\viewnobound1\snaptogridincell\allowfieldendsel
\wrppunct\asianbrkrule\rsidroot7484429\newtblstyruls\nogrowautofit \fet0\sectd \linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1049\langfe1049\cgrid\langnp1049\langfenp1049 {\lang1033\langfe1049\langnp1033\insrsid12530652 One }{
\b\lang1033\langfe1049\langnp1033\insrsid12530652\charrsid12530652 two}{\lang1033\langfe1049\langnp1033\insrsid12530652 }{\i\lang1033\langfe1049\langnp1033\insrsid12530652\charrsid12530652 three}{\lang1033\langfe1049\langnp1033\insrsid12530652 }{
\ul\lang1033\langfe1049\langnp1033\insrsid12530652\charrsid12530652 thour}{\lang1033\langfe1049\langnp1033\insrsid12530652 }{\b\i\lang1033\langfe1049\langnp1033\insrsid12530652\charrsid12530652 fife}{\lang1033\langfe1049\langnp1033\insrsid12530652 }{
\b\ul\lang1033\langfe1049\langnp1033\insrsid12530652\charrsid12530652 six}{\lang1033\langfe1049\langnp1033\insrsid12530652 }{\i\ul\lang1033\langfe1049\langnp1033\insrsid12530652\charrsid12530652 seven}{\i\ul\lang1033\langfe1049\langnp1033\insrsid1256829
\par }{\i\ul\lang1033\langfe1049\langnp1033\insrsid2387707 word}{\i\ul\lang1033\langfe1049\langnp1033\insrsid2387707\charrsid2387707
\par }}

Надо, сохраняя форматирование (пока жирный, наклонный и подчеркивание) преобразовывать в html.
Вот, что удалось пока написать:

<?php
$content = file_get_contents("test2.rtf");

$content = preg_replace("'\\\b\\\(.+?)}'si", "<b>\\\\\\1}</b>" , $content);
$content = preg_replace("'\\\i\\\(.+?)}'si", "<i>\\\\\\1}</i>", $content);
$content = preg_replace("'\\\ul\\\(.+?)}'si", "<u>\\\\\\1}</u>", $content);
$content = preg_replace("'\\\par[^d]'si", "<br>", $content);

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $content, $out);

for ($k=0; $k<count($out[0]); $k++)
{
$html = $out[0][$k];

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++)
{
echo $matches[1][$i] . "\n";
echo preg_replace("'\\\.* (.*)}'", "\\1", $matches[3][$i]);
echo $matches[4][$i] . "\n\n";
}

}
?>

Что выдает в браузер:
<b>
two</b>

<i>
three</i>

<u>
thour</u>

<b>
<i>fife</i></b>

<b>

<u>six</u></b>

<i>
<u>seven</u></i>

<i>
<u>word</u></i>

Надо научить скрипт выводить неформатированный текст, осуществлять перенос строки.
Помогите, пожалуйста!

   
 
 автор: artem_b   (05.05.2008 в 20:59)   письмо автору
 
   для: artem_b   (05.05.2008 в 10:46)
 

Неужели никто не поможет?!

   
 
 автор: artem_b   (06.05.2008 в 18:22)   письмо автору
 
   для: artem_b   (05.05.2008 в 20:59)
 

Такой трудный вопрос или помогать здесь стало не модно?

   
Rambler's Top100
вверх

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