既存のテキストファイルに入っているデータを整形して別のものに出力したいという理解でよろしいでしょうか。
まずは、自分で元テキストファイルの構成をphpのコードで解析させて、その後好きな形式で出力する方法です。
php
1$content = file_get_contents($filename);
2$lines = explode("\n", $content); //各行を配列に変換する
3$now = time();
4$data = array(); //解析結果を入れる配列
5$i = 0;
6$user = null;
7while($i < count($lines)){
8 if(strpos($lines[$i], '##')!==false){ //##がある行はユーザー情報
9 $values = explode('##', $lines[$i]);
10 if(count($values)>0){
11 $user = $values[0]; //誰かを格納
12 }else{
13 continue; //期待した構造でなかったらスキップするなども入れると良いです
14 }
15 }else{
16 if($user!=null){
17 $data[]=array( //最後に確認されたユーザーの書き込みと判断
18 'user'=>$user,
19 'time'=>$time,
20 'body'=>$lines[$i],
21 );
22 $time += 3*60; //時間を3分進ませる
23 }
24 }
25 $i++;
26}
27var_dump($data); //このデータを好きに出力する
28$users = array(
29 1=>'A',
30 2=>'B',
31 ・・・
32);
33foreach($data as $index=>$item){
34 //適当な形式で出力する。isset($users[$user]))等の処理も本来は必要
35 echo "<p>{$index+1} {$users[$item['user']]}さん {date('m月d日 H時i分', $users[$item['time']])}<br>{$item['body']}<\p>";
36}
手打ちですのでエラーはでるかと思いますが、形としてはこのようになります。
最後のecho文は、{}内関数は概念を表すもので、実際はいったん変数に代入するなどした方が良いと思います。
元ファイルが大きいときは、いっぺんにfile_get_contentsで開くのでは無く、fopenを使って1行ずつ読み込むなども必要になると思います。
他には、preg_matchといった正規表現で抽出する方法もありますし、この方が速い場合もあります。
まずは基本的なメソッドを提示させていただきました。