[ Kusur @ 20.02.2006. 19:10 ] @
Pozdrav svima

Da li neko zna kako da iz neke html strane izdvojim linkove, tj. ime linka i "http://...". Mislim da se koristi preg_match_all i regular exp. ali kako?

Na primer evo dela neke html strane:

Code:
<p><a href="http://www.link1.com">Proba1</a>
</p>
<p>  <a href="http://www.link2.com">Proba2</a></p>
<p><a href="http://www.link3.com">Proba3</a></p>


a kada izvučem ono što mi treba:

Proba1
http://www.link1.com

Proba2
http://www.link2.com

Proba3
http://www.link3.com

Unapred hvala
[ Zeljko Mitrovic @ 21.02.2006. 16:27 ] @
Code:
<?php
$linija = file('test.html');     /* Zameni sa nazivom tvog html fajla */
$linije = count($linija);     
for($x = 0; $x< $linije; $x++)     
{
    preg_match("#<a href=\"(.+?)\">(.+?)</a>#i", $linija[$x], $url);
    echo $url[2] . "<br>";     /* Ispisuje ime linka */
    echo $url[1] . "<br>";    /* Ispisuje adresu */
}
?>
[ Kusur @ 21.02.2006. 20:44 ] @
Hvala
[ Pharos @ 22.02.2006. 01:00 ] @
Sve linkove?
Da ne pišeš slučajno skriptu koja će da skine sve slike s onih sajtova :)
[ sale83 @ 22.02.2006. 03:29 ] @
U onaj kod sto je Zeljko napisao treba da izgleda ovako:

Code:

<?php
$linija = file('test.html');     /* Zameni sa nazivom tvog html fajla */
$linije = count($linija);     
for($x = 0; $x< $linije; $x++)     
{
    preg_match("#<a href=\"(.+?)\">(.+?)</a>#i", $linija[$x], $url);

    if($url[1]!="" and $url[2]!=""){ // Samo ako je link tj da ne prikazuje praznine

    echo $url[2] . "<br>";     /* Ispisuje ime linka */
    echo $url[1] . "<br>";    /* Ispisuje adresu */

    }
}
?>




[Ovu poruku je menjao sale83 dana 22.02.2006. u 04:30 GMT+1]
[ Br@nkoR @ 22.02.2006. 10:57 ] @
Npr.
http://www.php.net/dom
Code:

$page = '<html>
           <head>
             <title>test</title>
           </head>
           <body>
             <a href="http://link1.com">link1</a>
             <a href="http://link2.com">link2</a>
             <a href="http://link3.com">link3</a>
             <a href="http://link4.com">link4</a>
           </body>
         </html>';
$document = new DOMDocument();
$document->loadHTML($page);
/* ili */// $document->loadHTMLFile('file.html');
$links = $document->getElementsByTagName('a');
foreach($links as $link) {
  echo $link->nodeValue.'<br />'.$link->getAttribute('href').'<br /><br />';
}


[Ovu poruku je menjao Br@nkoR dana 22.02.2006. u 12:26 GMT+1]