Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсинг txt файла 
:(
    Опции темы
KgCoder
Дата 28.12.2009, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 6.3.2008
Где: KGstan

Репутация: нет
Всего: нет



Не могу распарсить txt файл такого содержания:
Цитата

SECTION I. Example title

PART 1. Example title

CONTENT 1. Example title
Example content

CONTENT N. Example title
Example content

PART N. Example title

SECTION N. Another section with very long
title and with line break


Задача состоит в том, чтобы получить заголовки SECTION, PART и CONTENT + содержимое CONTENT. Для получения заголовков использую такие рэгэкспы:
Код

preg_match("/SECTION \w+. (.*)$/m", $i, $o);
preg_match("/PART \w+. (.*)$/m", $i, $o);
preg_match("/CONTENT \w+. (.*)$/m", $i, $o);

Но проблема в том, что некоторые заголовки имеют перенос строки. Помогите составить новое выражения для такого заголовка:
Цитата

SECTION N. Another section with very long
title and with line break

PM MAIL   Вверх
Veve
Дата 28.12.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 1.1.2005
Где: Латвия, Рига

Репутация: нет
Всего: 13



Не уверен, что это возможно реализовать в одно действие. 
Как вариант могу предложить следующее
Код

$i="
SECTION I. Example title

PART 1. Example title

CONTENT 1. Example title
Example content

CONTENT N. Example title
Example content

PART N. Example title

SECTION N. Another section with very long
title and with line break
";

echo $i."<br/><br/>";

$title='';
   
while($i!='')
{

    
    $flag=preg_match("/^(?:CONTENT|SECTION|PART) \w+. (.*)/", $i, $o);
    
    if($flag)
    {
        preg_match("/".$o[0]."\n([\s\S]*)/", $i, $o2);
        echo "<font color='red'>".$title."</font><br/>";
        $title=$o[1];
        $i=$o2[1];

    }
    else
    {
        preg_match("/(.*)\n([\s\S]*)/", $i, $o2);
        $title.="\n".$o2[1];
        $i=$o2[2];

    }
  
    
}
echo "<font color='red'>".$title."</font><br/>";

PM MAIL ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0999 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.