Beh.... se non fai l'explode delle righe, non riuscirami mai a fare quello che devi fare te.

Codice PHP:
<?php
$nome_file 
"file1.txt";
if (
file_exists($nome_file)) {

$var=@fopen($nome_file,"r");
$leggi=fread($var,filesize($nome_file));

// ti crei un arrai in cui, per ogni riga, ne hai una 
// prelevata dal tuo file di testo
// EXPLODE effettuato con i caratteri tipici del A-Capo
// ma se ne hai uno particolare, allora metti quello
$array_righe explode("\r\n"$leggi); 

// conti quante righe ci sono nell'array
$conta_righe count($array_righe);

echo 
"<ul>";
// cicli per leggere ogni singolo rigo
for ($i 0$i <= $conta_righe$i++) {

$array_contenuto_rigo explode("|"$array_righe[$i]);

echo 
"[*]
Rigo 
$i ::: $array_contenuto_rigo[1] -  $array_contenuto_rigo[2] - $array_contenuto_rigo[3] - $array_contenuto_rigo[4] - $array_contenuto_rigo[8] - $array_contenuto_rigo[28]

"
;

}
echo 
"[/list]";

fclose($var);
} else {
echo 
"Spiacente ma il file non esiste";
}
?>
Non l'ho provato, ma dovrebbe funzionare.
A prescindere, spero tu abbia capito come funziona il tutto, così riesci a metterci mano anche da solo.

Ad ogni modo, fossi in te, penserei seriamente di fare tutto questo con un DB: lo script sarebbe più pulito e la performance migliore.