#!/usr/bin/php4 ]*href[ ]*='; $frame_reg = ']*src[ ]*='; $reg = "$a_reg|$frame_reg"; if (eregi($reg, $line, $matches)) { $pos = strpos($line, $matches[0]); $line = substr($line, $pos + strlen($matches[0])); } while ($pos !== false) { $char = $line[0]; while ($char == ' ' || $char == '"' || $char == "'" || $char == '=') { $line = substr($line, 1); $char = $line[0]; } $remote = ""; while ($line && $char != ' ' && $char != '"' && $char != "'" && $char != '>') { $remote .= $char; $line = substr($line, 1); $char = $line[0]; } if ($remote && !eregi('mailto:',$remote)) { echo "parsed href ($remote)\n"; if (eregi('http://([^><" ]+)', $remote, $matches)) { $remote = make_url($url, $matches[0]); if (substr($remote, 0, strlen($site))==$site && !$grabbed[$remote]) { sleep(1); echo "Grabbing $remote\n"; grab($remote); } else { echo "Not Grabbing $remote\n"; } } else { $remote = make_url($url, $remote); echo "relative path to absolute makes ($remote)\n"; if (!$grabbed[$remote]) { sleep(1); echo "Grabbing ".$remote."\n"; grab($remote); } else { echo "Not Grabbing ".$remote."\n"; } } } $pos = false; if (eregi($reg, $line, $matches)) { $pos = strpos($line, $matches[0]); $line = substr($line, $pos + strlen($matches[0])); } } } } } grab($site); ?>