Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parsowanie strony + wyrażenie regularne....
Forum PHP.pl > Forum > Przedszkole
dj.bobas
Witam....

Mam następujący problem: jestem adminem strony parafialnej i mamy dział czytań. Pierwotnie zrobiłem to na zasadzie ręcznego dodawania czytań do bazy, jednak jest to metoda nieefektywna.... Dlatego napisałem parser do pobierania treści z portali z czytaniami, no i mam kłopot.

Próbuję przeparsować nagłowki czytań ze źródła (przykładowy kod, nazwy znaczników specjalnie zmienione):
Kod
< /FONT > Z LISTU DO HEBRAJCZYKÓW:< BR >Hbr &nbsp &nbsp 3, 7-14 &nbsp  < FONTT COLOR="#FF0000">Zachować wierność Bogu.</FONTT></HH2>


No i zastosowałem wyrażenie
Kod
$pattern = "|<BR>.*?<FONT>|"
aby wyciągnąć fragment "Iz 42,1-4, 6-7"

Niestety nie działa....

Inne typu < DIR > .* < / DIR > lub < H2 >< FONT COLOR=\"FF0000\" > .* < BR > działają....

Nie mam na to pomysłu.....
erix
http://code.google.com/p/phpquery/

A co do problemu:
Cytat
Niestety nie działa....

Znaki specjalne trzeba escape'ować - preg_quote" title="Zobacz w manualu PHP" target="_manual. Poszukiwany ciąg "nieregularny" w nawias.
dj.bobas
Co do problemu to już częściowo rozwiązałem...

Zastosowałem
Kod
$pattern4 = "/[0-9]{1,2},\s[0-9]{1,2}[\-]{0,1}[0-9]{1,2}.?[\s]?[0-9]?[0-9]?[\-]?[0-9]?[0-9]?/";


i zwraca mi już numer czytania....

Nie wiem tylko jak wyciągnąć trzyliterowy skrót sprzed numeru (są tam twarde spacje...)

jak poprzedzam
Kod
[A-Za-z]{1,4}.?
to mi wywala na ekran właśnie nbsp...... sad.gif
erix
Ale masz przecież ampersanda (&) przed nbsp, jego weź za punkt zaczepienia.
dj.bobas
Cytat(erix @ 13.01.2009, 21:25:58 ) *
Ale masz przecież ampersanda (&) przed nbsp, jego weź za punkt zaczepienia.


Dzięki za nakierowanie na rozwiązanie....
Repka dla Ciebie... smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.