Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

preg_match_all(); "cupanje" linka sa stranice

[es] :: PHP :: preg_match_all(); "cupanje" linka sa stranice

[ Pregleda: 2005 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar1987

Član broj: 129312
Poruke: 119
*.adsl.verat.net.



+1 Profil

icon preg_match_all(); "cupanje" linka sa stranice05.09.2008. u 22:04 - pre 156 meseci
Pozz

Treba mi php skriptica koja bi uzimala linkove sa jedne strane i stavljala ih u jedan niz.
Imam sledeci deo koda ali mi on ne daje zeljene rezultate jer meni treba samo link.

Code:
  protected function _get_links() {
    if (!empty($this->markup)){
      preg_match_all('/<a([^>]+)\>(.*?)\<\/a\>/i', $this->markup, $links);  
      return !empty($links[1]) ? $links[1] : FALSE;
    }
  }


Dobro, ostatak je nebitan...

Ovaj mi izbacuje od "<a" do "/a>" pa uhvati i npr "width="69" height="70" align="left"" sto mi ne treba, meni treba samo href.
Rekli su mi da skinem regexBuddy ali ja to ne znam da koristim :(

Konkretno, odavde

Code:
<a class=al4 href=view.php?id=64455 target=_blank>linAK:)</a>


treba da vrati: "www.nekisajt.com/view.php?id=64455" i ubaci u niz.

Pozz
Hvala
 
Odgovor na temu

danci13

Član broj: 164191
Poruke: 35
*.com
Via: [es] mailing liste



Profil

icon Re: preg_match_all(); "cupanje" linka sa stranice05.09.2008. u 22:13 - pre 156 meseci


A zašto ne:

Code:

preg_match_all( '|href="(.?*)"|', $html, $rez );


[Ovu poruku je menjao flylord dana 06.09.2008. u 02:18 GMT+1]
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: preg_match_all(); "cupanje" linka sa stranice18.09.2008. u 02:21 - pre 156 meseci
A moze i ovako. Ne podnosim regularne izraze.

Funkcija podrazumeva da se u parametru $page nalazi sadrzaj cele html strane (ne link).

Code:


function GetPageLinks($page) {
$links= array();
$doc = new DOMDocument();
if ( $doc->loadHTML($page) ) {
  $xpath = new DOMXPath($doc);
   $hreflist = $xpath->query('//a/@href');
   if ($hreflist !== false) {
     foreach ($hreflist as $href) {
       $links[] = $href;
     }
   }
 }
  return links;
}



Tko leti vrijedi
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.cable-3.sattrakt.net.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: preg_match_all(); "cupanje" linka sa stranice18.09.2008. u 14:29 - pre 156 meseci
Ne znam da li ti je jos ovo uvek aktuelno, u svakom slucaju evo malo regexp-a za linkove ;)

Ono scim radis, source neke stranice, je u $string-u:

Code:

// Razne kombinacije...
// $matches_comb[0] sadrzi ceo <a> tag
// $matches_comb[1] sadrzi ono sto je unutar "href" atributa
// $matches_comb[2] sadrzi ono sto je izmedju <a> i </a>
// sa "s" modifier-om ce da uvati i linkove koji imaju u sebi newline
// bez njega ce uvatiti samo linkove koji su u jednom redu
preg_match_all('|<a\s.*href=["\'](.*)["\'].*>(.*)</a>|isxU',$string,$matches_comb);

echo "<pre>";
print_r($matches_comb);
echo "</pre>";

// Uvati samo ono sto je unutar "href" atributa
preg_match_all('|<a\s.*href=["\'](.*)["\'].*>.*</a>|isxU',$string,$matches_href);

echo "<pre>";
print_r($matches_href);
echo "</pre>";

// Uvati samo ono sto je unutar "href" atributa, i samo onda ako pocinje sa http://, ukljucujuci i http://
// $mathces_href_http[0] sadrzi i nekog smeca, mislim da je zbog \n-ova, nema veze, 
// $mathces_href_http[1] sadrzi tacno ono sto nam treba
preg_match_all('|<a\s.*href=["\'](http://.*)["\'].*>.*</a>|isxU',$string,$matches_href_http);

echo "<pre>";
print_r($matches_href_http);
echo "</pre>";


Kad budem imao vremena odradicu jos neke kombinacije :)

Happy hacking!
 
Odgovor na temu

[es] :: PHP :: preg_match_all(); "cupanje" linka sa stranice

[ Pregleda: 2005 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.