Autor Zpráva
mzk
Profil *
Zdravím,
mám html vstup něco jako: (<odkaz> je nějaký odkaz ve tvaru <a href="adresa">popisek</a>)
------------------------------------------------------------------
bla balada odaho <odkaz> a třeba <odkaz> .....
Odkazy:<odkaz><odkaz>
<odkaz>
<odkaz><odkaz><odkaz>
... a zase nějaký text<odkaz>....
------------------------------------------------------------------
a potřeboval bych vycucnou pomocí reg. výrazů jen odkazy neprodleně zasebou odkazy po slově 'Odkazy:' (adresa, popisek) zatím se mi to povedlo jen na dvakrát, že jsem pomocí preg_match vybral Odkazy:(.*) a potom pomocí preg_match_all vyzobal potřebné údaje. Jestli to jde, tak jak ty dvě operace spojit v jednu? zkoušel jsem něco jako Odkazy:[<a href=\"(.*)?\">(.*)?</a>]* ale to mi nějak nešlo.
Norman
Profil
Myslím si, že regulérní výrazy v tomto ohledu nejsou dobrým řešením, zvláště jestli se jedná o parsování většího množství dat (myšleno vícekrát za sebou..) jelikož nejsou nejrychlejší.. Zkus třeba explode....
mzk
Profil *
Norman:
díky za odpověď, ale explode mi nepomůže - stejnak musím vybrat tu část "Odkazy:x*<odkaz>" - jelikož se jedná o celkem krátké texty, tak na rychlost to zas takový vliv mít nebude.
Keeehi
Profil
mzk:
Jestli to jde, tak jak ty dvě operace spojit v jednu?
Nejde. Je to potřeba udělat nadvakrát. Jinak ještě (.*)? je špatně, má to být (.*?)
mzk
Profil *
Keeehi:
díky za odpověď, budu to tedy dělat na dvakrát
Tori
Profil
Asi bych nejdřív osekala text jen na tu zajímavou část (= mezi "Odkazy:" a ... čím? "</div>"?), buď explode nebo strpos+substr nebo preg_match, podle délky textu. A potom ten zbytek zpracovala preg_match_all.
Sorry za duplicitní radu, začetla jsem se v jiném vlákně.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: