Parsuję dane z przykładowej strony http://mateusz.pl/czytania/2010/20100407.htm
Najpierw ze znacznika <a href="#czytania">...</a> wyciągam do tablicy nazwy czytań, następnie staram się za pomocą funkcji preg_match_all i odpowiednich wyrażeń regularnych utworzonych na podstawie pozycji z ww. tabeli wyciągnąć interesujące mnie fragmenty.
Fragmenty są w znacznikach <p>(tu nazwa czytania)<br>tu tresc do wyciągnięcia</p>.
I teraz tak:
$lessonsListPattern = "|<a href=\"#czytania\">.*</a>|"; //wzorzec zwracajacy liste czytan $lessons = $return3[0][0];
i następnie tworzę w zależności od dnia:
if ($dzien_czytan==0) { $ileCzytan = 3; $firstPattern = "|<p>\(".$lessonsTab[0]."\)<br>.*</p>|ismU"; $secondPattern = "|<p>\(".$lessonsTab[2]."\)<br>.*</p>|ismU"; $evangelionPattern = "|<p>\(".$lessonsTab[4]."\)<br>.*</p>|ismU"; } else { $ileCzytan = 2; $firstPattern = "|<p>\(".$lessonsTab[0]."\)<br>.*</p>|ismU"; $secondPattern = NULL; $evangelionPattern = "|<p>\(".$lessonsTab[3]."\)<br>.*</p>|ismU"; }
Dalej wyciągnięcie samej treści robię na zasadzie:
$tresc2[0][0] = ISO88592_2_UTF8($tresc2[0][0]);
Problem jest w tym, iż działa to tylko za pierwszym razem - jeśli na przykład mam do wyciągnięcia 3 teksty, to pierwszy poprawnie wyciąga, a kolejne 2 tablice do których wczytuję fragmenty wg wzorców są puste... (sprawdzone var_dumpem). Myślałem, że może chodzi o kodowanie, ale dla niepolskich znaków też tak się dzieje. Próbuję już 2 godziny to poprawić i nic. Może ktoś ma pomysł, dlaczego to może nie działać?

Przykład:
<html>
później inne znaczniki
<p>(Dz 3,1-10)<br>tresc czytania 1</p>
cos innego
<p>(Łk 13,13-15)<br> tresc czytania 2</p> itd....
I po zastosowaniu preg_match_all dla pierwszego wzorca zwraca poprawnie czytanie 1, natomiast w drugim przejsciu petli i wywolaniu wzorca nr 2 nie pokazuje nic. (wzorzec zrobiony analogicznie do poprzedniego)