obiettivo: far apparire i messaggi dall'ultimo al primo.

scrivo su un txt poi divido i msg leggendo l'elemento separatore, che nel mio caso è "§".

non riesco a creare un array che legga la sequenza dei msg e li ordini al contrario (rsort)

il mio script attuale fa apparire i messaggi dal primo all'ultimo:

<?php
print ("<form name=\"form1\" method=\"post\" action=\"guestbook.php\">
<div align=\"center\"><table width =\"400\" border=\"0\" class=\"testo\" cellpadding=\"0\">
<tr><td valign=\"top\">nome: </td>
<td><input type=\"text\" name=\"nome\" size=\"25\"></td></tr>
<tr><td valign=\"top\">testo: </td>
<td><textarea name=\"dimmi\" cols=\"40\" rows=\"5\"></textarea></td></tr>
<tr><td valign=\"top\"></td>
<td><input name=\"invia\" type=\"submit\" value=\"scrivi\"></td></tr>
</table></div>
</form>");

if (isset ($_POST['nome']) && isset ($_POST['dimmi'])) {

$nome = $_POST['nome'];
$dimmi = $_POST['dimmi'];

$nome = stripslashes($nome);
$dimmi = stripslashes($dimmi);

if ($nome == "" || $dimmi == "") {
print ("<div align=\"center\"><table width =\"400\" border=\"0\" class=\"testo\" cellpadding=\"0\">
<tr><td>Inserisci nome e messaggio

</td></tr>
</table></div>");
} else {

$fd = fopen('public/guest.txt', 'a');

$str = sprintf('%s: %s§', $nome, $dimmi);

$scrivi = fwrite ($fd, $str);

fclose ($fd);
}
}

$fd = fopen ('public/guest.txt', 'r');
$check = fread ($fd, 80000);
$dividi = strtok ($check, "§");

while ($dividi) {
print ("<div align=\"center\"><table width =\"400\" border=\"0\" class=\"testo\" cellpadding=\"0\">
<tr><td>$dividi

</td></tr>
</table></div>");
$dividi = strtok ("§");
}

?>

qualcuno mi può aiutare???

GRAZIE

PS [ne approfitto anche per chiedervi come si fa nel momento in cui uno posta un messaggio a ricaricare la pagina con le variabili "vuote" in modo che se aggiorna la pagina non posta di nuovo lo stesso messaggio???] grazie ancora!