Portál AbcLinuxu, 11. května 2025 23:58

Dotaz: preg_match_all hledani odkazu na webu

11.9.2009 16:53 pou | skóre: 18
preg_match_all hledani odkazu na webu
Přečteno: 433×
Odpovědět | Admin

Ahoj

potřeboval bych poradit s regularnim vyrazem na vyhledanii odkazu z www stranek.

problem je ten ze potrebuju aby si poradil i s obrazkem jako odkaz a podobně.

napr.: <a type="neco" href='www.abclinuxu.cz' class='neco' > <img sr='neco'>popisek<br>dalsi popisek </a>

vím že je to přehnany odkaz ale možna někde v hlouby webu se neco podobneho zrodi

zkoušel jsem toto :

preg_match_al('l/<\s*a[^<>]*href\s*\=\s*[\"\']+\s*(http\:\/\/(www\.)?[^<>]*\.(\w)+[^<>]*)[\"\']+[^<>]*>.*[^\/][^a]*<\s*\/a\s*>/', $file,$matches);

ale nejak to nefunguje, muze mi nekdo poradit? diky

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.9.2009 18:54 Zbyněk Petr (Zboňa) | skóre: 6 | blog: zbona | Brno / Vyškov
Rozbalit Rozbalit vše Re: preg_match_all hledani odkazu na webu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chces vytahnout jen url neo cely obsah mezi <a ...> a </a>?
11.9.2009 20:25 ams
Rozbalit Rozbalit vše Re: preg_match_all hledani odkazu na webu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Nepopsal jste jaky vysledek byste chtel dostat v tomto prikladu. Jenom www.abclinuxu.cz? Nebo <img sr='neco'>popisek<br>dalsi popisek? Budu predpokladat, ze hledate jenom www.abclinuxu.cz.

preg_match_all('/<\s*a\s[^>]*?\bhref\s*=\s*["\'](.*?)["\']/', $file, $matches);

11.9.2009 22:50 pou | skóre: 18
Rozbalit Rozbalit vše Re: preg_match_all hledani odkazu na webu

no rad bych z jakekoliv webove stranky vytahl vsechny odkazy, takze vcetne tagu <a> </a> + to co je mezi nimi

takze z textu: "<div>text< a class='PRVNI' href  = "abclinuxu.cz" type='neco' > text<img...>< /a>< a class='DRUHY' href  = "linux.cz" type='necojinyho' > text<br>text< /a>text</div>"

bych rad ziskal pole s prvky:1) < a class='PRVNI' href  = "abclinuxu.cz" type='neco' > text<img...>< /a>

2)< a class='DRUHYI' href  = "linux.cz" type='necojinyho' > text<br>text< /a>

 

problem je ten ze mi vrati oba odkazy jako jeden, nebo text mezi nimy atd... proste nevim jak na to

Díky za kazdou radu

Marek Bernát avatar 12.9.2009 00:50 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: preg_match_all hledani odkazu na webu
Ak tomu správne rozumiem, tak chceš toto: preg_match_all('@<a[^>]*>.*?</a>@');
physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
12.9.2009 09:30 pou | skóre: 18
Rozbalit Rozbalit vše Re: preg_match_all hledani odkazu na webu

Dobré ráno, to je přesně to co chci, ale zkuste si ti vyzkouset na seznam.cz uvidite co to vypise za blbosti!!

Marek Bernát avatar 12.9.2009 11:44 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: preg_match_all hledani odkazu na webu
Ak to robí blbosti, tak je to zrejme tým, že <a...</a> je v texte cez viac riadkov. V tom prípade sa treba pohrať s prepínačmi, lebo '.' defaultne nematchuje nový riadok. Bohužiaľ nemám teraz po ruke inštaláciu PHP, takže viac Vám asi neporadím :-(
physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
13.9.2009 12:53 pou | skóre: 18
Rozbalit Rozbalit vše Re: preg_match_all hledani odkazu na webu

FUNGUJE, vyreseno diky moc!!!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.