Ciao, questo e' l'errore che mi da' il mio script

codice:
Fatal error: Allowed memory size of 8388608 bytes exhausted 
(tried to allocate 3193043 bytes) 
in /home/urs/dir/index-help.php on line 35
Si tratta di uno script abbastanza semplice, che pero' fa una cosa mostruosa...

ho memorizzato in un file <fileindex.txt> 8768 url di documenti HTML, lo script deve leggere ogni linea, e con la funzione file_get_contents() memorizzare il contenuto di ogni URL in una stringa e metterlo dentro un database. Ho anche splittato il file in pezzi da 200 linee, ma il risultato non cambia.

Ho quindi due domande:

1) come faccio ad evitare che mi dia quell'errore?
2) sto facendo la cosa giusta? c'e' un modo meno oneroso per ottenere lo stesso risultato?

Lo script

Codice PHP:
#file che contiene le url
$what "fileindex.txt";

#apro il file e ottengo in $buffer la URL
$fd fopen($what"r");
while (!
feof ($fd)) {
$url fgets($fd4096);

$url  str_replace("./","",$url );
$url  "http://127.0.0.1/home/urs/dir/".$url;
$url  str_replace("\n","",$url );


# corpo del documento
$body file_get_contents($url);
# data
$data date("d-m-Y");

#aggiungi
$sql "INSERT into myhelp (url,corpo,data)";
$sql.= "VALUES ('$url', '$body', '$data')";
mysql_query($sql$db);


echo 
"

[b]Ho aggiunto[/b]
"
;
echo 
$url."</p>";
}
fclose($fd);