Ciao a tutti avrei un problemino nella lettura di un file di testo tramite php

Allora apro il file, lo leggo tutto e poi tramite alcune istruzioni cerco di ottenere alcuni dati.

Il file (formato txt) originalmente appare così (sarebbe tutto su una sola linea)
codice:
+ACI-Traffico Dati+ACI-
3xxxxxxxxx+ADs-0+ADs-0+ADs-0+ADs-0
3xxxxxxxxx+ADs-0+ADs-0+ADs-0+ADs-0
3xxxxxxxxx+ADs-0,2+ADs-0+ADs-0,2+ADs-0
3xxxxxxxxx+ADs-43,95+ADs-
0,05+ADs-0,1+ADs-43,8
3xxxxxxxxx+ADs-0+ADs-0+ADs-0+ADs-0
Bene al posto delle x ci sono dei numeri (sarebbero dei numeri di telefono), le formattazioni +ACI- +ADs- in realtà sono poste perchè sarebbe un file excel convertito e delimitato in txt, quindi nel procedere alla lettura ho fatto così

Codice PHP:
<?
 $file
='nomefile.txt'
 
$apertura fopen($file"r");
 if(!
$apertura) die ("Errore nell'apertura del file");
 
$dati fread($aperturafilesize($file));
 
$dati str_replace("+ACI-"" "$dati);
 
$dati str_replace("+AC0-"" "$dati);
 
$dati str_replace("+ADs-"" "$dati);
?>
E fin qua se stampo $dati va tutto bene, poi cerco di ottenere il primo record composto da numero telefono (3xxxxxxxxx) e poi dai quattro valori successivi che da esempio sono (0 0 0 0)
Codice PHP:
<?
$posizioneA 
0;
$posizioneB 0;
$posizioneC 0;
$posizioneD 0;
$posizioneE 0;

//questo è un contatore, per ora sta a 1 ma va bene perchè sto testando per il 1 record
$testoInd 'Traffico Dati ';
$tot2 substr_count($dati$testoInd$posizioneN); 
//" " <-- Significa che leggo il testo fino allo spazio
$posizioneA strpos($dati$testoInd$posizioneA)+strlen($testoInd);
$lunghezza1  strpos($dati" "$posizioneA)-$posizioneA;    
        
$posizioneB $posizioneA+$lunghezza1+1;
$lunghezza2 strpos($dati" "$posizioneB)-$posizioneB;
        
$posizioneC $posizioneB+$lunghezza2+1;
$lunghezza3 strpos($dati" "$posizioneC)-$posizioneC;
    
$posizioneD $posizioneC+$lunghezza3+1;
$lunghezza4 strpos($dati" "$posizioneD)-$posizioneD;
        
$posizioneE $posizioneD+$lunghezza4+1;
$lunghezza5 strpos($dati" "$posizioneE)-$posizioneE;

$pr 1;
$IND1 = Array();
$IND2 = Array();
$IND3 = Array();
$IND4 = Array();
$IND5 = Array();
$TESTO = Array();
    
while (
$pr <= $tot2){
    
$IND1[$pr]  = substr($dati,$posizioneA,$lunghezza1);
    
$IND2[$pr]  = substr($dati,$posizioneB,$lunghezza2);
    
$IND3[$pr]  = substr($dati,$posizioneC,$lunghezza3);
    
$IND4[$pr]  = substr($dati,$posizioneD,$lunghezza4);
    
$IND5[$pr]  = substr($dati,$posizioneE,$lunghezza5);
            
    
$posizioneA strpos($dati$testoInd$posizioneA)+strlen($testoInd);        
    
$lunghezza1 strpos($dati" "$posizioneA)-$posizioneA;    
                
    
$posizioneB $posizioneA+$lunghezza1+1;
    
$lunghezza2 strpos($dati" "$posizioneB)-$posizioneB;
                
    
$posizioneC $posizioneB+$lunghezza2+1;
    
$lunghezza3 strpos($dati" "$posizioneC)-$posizioneC;
        
    
$posizioneD $posizioneC+$lunghezza3+1;
    
$lunghezza4 strpos($dati" "$posizioneD)-$posizioneD;        
                
    
$posizioneE $posizioneD+$lunghezza4+1;
    
$lunghezza5 strpos($dati" "$posizioneE)-$posizioneE;                    

    
$TESTO[$pr] = $IND1[$pr].' '.$IND2[$pr].' '.$IND3[$pr].' '.$IND4[$pr].' '.$IND5[$pr].'
'
;

    echo 
'<font color="white">'.$TESTO[$pr].'
'
;
                
    
$pr $pr+1;
}                    
?>
Bene attualmente se apro la pagina php mi da questo come risposta
codice:
3xxxxxxxxx 0 0 0 0 3xxxxxxxx
Quindi mi stampa il primo numero di telefono, mi stampa i quattro valori di mio interesse ma mi stampa pure il secondo numero di telefono.

Avrei quindi bisogno di una mano, perchè se tolgo l'ultima parte ($posizione E, $lunghezza5 e $IND5[$pr], mi stampa
codice:
3xxxxxxxxx 0 0 0
E quindi manca un valore

Grazie mille a tutti