Die Programmierbude meinte, das geht nicht😟
Für Dein Beispiel habe ich das - mit erfolgreichem Test - in 5 Minuten gelöst. Wenn etwas „nicht geht“(¹), dann liegt das Problem außerhalb Deiner Beschreibung.
<?php
$text = file_get_contents( 'test.txt' );
$tab = "\t";
$tabsCounter = 3;
$rows = explode( '<BR>', $text );
echo str_repeat( $tab, $tabsCounter ) . '<table>' . PHP_EOL;
foreach ( $rows as $row ) {
echo str_repeat( $tab, $tabsCounter + 1 ) . '<tr>' . PHP_EOL;
list( $th, $td ) = explode( ':', $row, 2 );
echo str_repeat( $tab, $tabsCounter + 2 ) . '<th>' . trim( $th ) . '</th>' . PHP_EOL;
echo str_repeat( $tab, $tabsCounter + 2 ) . '<td>' . trim( $td ) . '</td>' . PHP_EOL;
echo str_repeat( $tab, $tabsCounter + 1 ) . '</tr>'.PHP_EOL;
}
echo str_repeat( $tab, $tabsCounter ) . '</table>' . PHP_EOL;
¹) „Geht nicht“ gibt es nicht, denn „Murksen kann man immer“