2010-04-25 4 views
0

Мне нужна помощь при создании регулярного выражения для размещения всех значений в массиве!PHP - preg_match_all - iCalendar - REGEX

предполагая, что мы имеем огромный файл полный theese:

Классический Анонсы стиль:

поэтому мы знаем, что каждый сегмент начать с BEGIN:VEVENT и конец с END:VEVENT

... 
END:VEVENT 

BEGIN:VEVENT 
UID:e3cafdf3-c5c7-427e-b8c3-653015e9321a 
SUMMARY:Some Text Here 
DESCRIPTION:Some Text Here\n555-555-555 
ORGANIZER;CN=Some/Text/Here 
DTSTART;TZID="Some/Text/Here":20100802T190000 
DTEND;TZID="Some/Text/Here":20100802T193000 
STATUS:CONFIRMED 
CLASS:PUBLIC 
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY 
TRANSP:OPAQUE 
X-MICROSOFT-DISALLOW-COUNTER:TRUE 
DTSTAMP:20100423T021222Z 
SEQUENCE:1 
END:VEVENT 

BEGIN:VEVENT 
... 

с использованием preg_match_all, который я считаю лучшим выбором для этого, какое регулярное выражение может содержать все эти значения в массиве !?

PS: между сегментами нет разрыва строки, это только пример!

Редакция: только для осветления я хочу добиться результата, как это:

 Array 
     (
      [0] => Array 
       (
       [0] => ' 
UID:e3cafdf3-c5c7-427e-b8c3-653015e9321a 
SUMMARY:Some Text Here 
DESCRIPTION:Some Text Here\n555-555-555 
ORGANIZER;CN=Some/Text/Here 
DTSTART;TZID="Some/Text/Here":20100802T190000 
DTEND;TZID="Some/Text/Here":20100802T193000 
STATUS:CONFIRMED 
CLASS:PUBLIC 
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY 
TRANSP:OPAQUE 
X-MICROSOFT-DISALLOW-COUNTER:TRUE 
DTSTAMP:20100423T021222Z 
SEQUENCE:1 
        ' 
       ) 

      [1] => Array 
       (

... 
       ) 
    ... 

     ) 

благодарственных ко всем за время!

С уважением Лука Filosfi

ответ

1

Зачем использовать регулярные выражения?

Это звучит как работа для explode() и немного очистки.

+0

Вы думаете, что я могу взорвать 2 МБ этих сегментов !? перед взрывом я хочу поместить каждый сегмент в массив! или я делаю это неправильно !? –

+1

Взрывание быстрее, чем регулярное выражение, поэтому, если вы беспокоитесь о размере и производительности, 'explode' - это путь. И учитывая, что формат довольно прост, этого, наверное, достаточно. –

+0

Да, вы правы, приятель! ;-) Это довольно просто! вероятно, достаточно, я подумал! ;-) иногда случаются! что я прошу просто проблемы! DOH! %-) благодаря! –

Смежные вопросы