Uhm... Non è molto semplice: si tratta di una sorta di parser del file.
Potresti fare una cosa del genere:
Codice PHP:
if ($handle opendir('Catalogo')) {
while (
false !== ($file1 readdir($handle))) {

if (
$file1 != "." && $file1 != "..") {
$file file ("Catalogo/".$file1);


$species = array();

$family="";
$genus="";

foreach(
$file as $row//scorro l'array
{
$dati=explode(": ");//divido in ogni riga l'identificatore(es genus) dal valore
$indent=$dati[0];//identificatore
$value=$dati[1];//valore
if($ident=="family")//se il valore è identificato da family
$family=$value;//la famiglia presa in considerazione diventa quella identificata
if($ident=="genus")//se il valore è identificato da genus
$genus=$value;//il genere preso in considerazione diventa quello identificato
if($ident=="species")//se il valore è identificato da species
$species[$family][$genus][]=$value;//inserisco il valore in un array multidimensionale, identificandolo con family e genus
}
sort($species);
foreach(
$species as $family//scorro l'array
{
foreach(
$species[$family] as $genus//scorro l'array
{
foreach(
$species[$family][$genus] as $specie//scorro l'array
{
$inserisci mysql_query("INSERT INTO ragni (Specie,Genus,Family,img) VALUES ('$specie','$genus','$family','no')");
if(
$inserisci)
echo 
"la specie $specie, di genere $genus, appartenente alla famiglia $family, è stata inserita correttamente nel database";
}
}
}
}
}

Non ho provato lo script, ma dovrebbe andare, in pratica, oltre ad inserire il nome della specie nel database, inserisce anche la famiglia e il genere nei relativi campi.