This one time, at band camp,
"Lord Loh." <[EMAIL PROTECTED]> wrote:

> I am trying to make a link collector.
> 
> after opening the desired page, I want to get all the hyperlinks on it...

OK, this is quick and nasty, but you can add sanity/error checking etc
as you please, but it shows you the concept..

<?php

  // tell me its broken
  error_reporting(E_ALL);

class grabber{

  function grabber(){

}

function getLinks(){
  // regex to get the links
  $contents = $this->getUrl();
  preg_match_all("|http:?([^\"' >]+)|i", $contents, $arrayoflinks);
  return $arrayoflinks;
}

// snarf the url into a string
function getUrl(){
  return file_get_contents($_POST['url']);
}


} // end class
?>

<html>
<body>
<h1>Link Grabber</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr><td>URL:</td><td><input type="text" name="url" maxlength="100" size="50" 
value="http://www.php.net";></td></tr>
<tr><td><input type="submit" value="Grab em"></td></tr>
</table>
</form>

<?php
  // check something was posted
  if(!isset($_POST['url']) || $_POST['url']=='')
        {
        // or tell them to
        echo 'Please Enter a Valid url';
        }
  else
        {
        // create a new grabber
        $grab = new grabber;
        // snarf the links
        $arr=$grab->getLinks();
        // check the size of the array
        if(sizeof($arr['0'])=='0')
                {
                // echo out a little error
                echo 'No links found in file '.$_POST['url'];
                }
        else
                {
                // filter out duplicates and print the results
                foreach(array_unique($arr['0']) as $val){ echo '<a 
href="'.$val.'>'.$val.'<br />'; }
                }
        }
?>
</body></html>


enjoy,
Kevin
-- 
 ______                              
(_____ \                             
 _____) )  ____   ____   ____   ____ 
|  ____/  / _  ) / _  | / ___) / _  )
| |      ( (/ / ( ( | |( (___ ( (/ / 
|_|       \____) \_||_| \____) \____)
Kevin Waterson
Port Macquarie, Australia

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to