Autor Zpráva
DaveLister
Profil
Potžebuji vytáhnout pomocí Preg_match vytáhnout řetězec na víc řádcích

Příklad:

<div id="neco">
    <a href="neco.neco">blabla</a>
    <a href="neco.neco">blabla</a>
    <a href="neco.neco">blabla</a>
</div>

A já potřebuji, abych vyáhl ty odkazy (všechno mezi <div id="neco"> a </div>)
Problém je, že preg_match pracuje vždy pouze s jedním řádkem, i když dám jako pattern "<div id="neco>(.*)" načte se mi pouze ta jedna řádka
bukaj
Profil
DaveLister
preg_match_all()?
DaveLister
Profil
To určitě ne,
Preg_match_all() je jenom to, že vytáhne všechno, co odpovídá danému patternu, i když je to v řetězci několikřát....

To znamená, že bych moh jako pattern dát "<a href="neco.neco">(.*)</a>" a dostal bych pole, kde by bylo 3x blablabla
Problém je, že to zas pracuje pouze s jedním řádkem :(
Nox
Profil
DaveLister
Nešlo by v tom kontrolovaném řetězci ta zalomení vystřílet přes nějakou řetězcovou funkci?
DaveLister
Profil
Jako str_replace("\n","",$string)

Na to jsem myslel, ale chtěl jsem nějakou variantu přímo přez regulární výrazy....
Každopádně pokud to nepude použiji toto.
Leo
Profil
Za regularnim vyrazem pouzijete modifikator "s", viz

http://interval.cz/clanky/perl-compatible-regularni-vyrazy-v-php-modif ikatory-a-line-kvantifikatory/

Leo

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: