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

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

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

 

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

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

тема: парсер rtf
 
 автор: artem_b   (03.05.2008 в 17:05)   письмо автору
 
 

Здравствуйте!
Имеем текст "One two three thour fife six seven word" отформатированный вордом (прикреплен) и сохраненный в формате rtf.
Надо, сохраняя форматирование (пока жирный, наклонный и подчеркивание) преобразовывать в 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>

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

   
Rambler's Top100
вверх

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