Mi spiego un pochino meglio.
Ho costruito un guestbook che usa un file txt per salvare i messaggi.
Prendo i dati che scrive l'ospite e li salvo nel file txt, poi prendi i dati dal file e li stampo a video.
E il tutto funziona.
Facendo così però, riesco a trattare (e quindi a formattare) i dati che inserisce l'ospite (nome, località e data) solo come stringa unica.
Quindi, se volessi mettere in grassetto solo il nome non mi è possibile, in quanto anche gli altri dati prenderebbero il grassetto.
L'ideale sarebbe, riuscire ad estrapolare dal file txt, la riga suddividendola in più parti
Si può fare o è troppo complesso?
PS. lo so che usando il database è più semplice, ma volevo farlo usand un file txt.
grazie
posto il codice:
scrivi.php
Codice PHP:
<?php
//recupero i dati da form modulo.php
$nome=$_POST['Nome'];
$citta=$_POST['Citta'];
$messaggio=$_POST['Mex'];
//verifico che tutti i campi del form siano pieni
if (empty($nome) || empty($citta) || empty($messaggio) ){
echo 'Uno o più campi obbligatori sono vuoti!
';
echo '[url="guest.php"]Torna indietro[/url]';
}
//se pieni
else {
//variabili per la data: giorno, mese, anno
$data_g= date("d");
$data_m= date("m");
$data_a= date("y");
echo "Grazie per aver firmato il Guest book"."
";
echo "<a href=\"guest.php\">Ritorna al Guestbook</a>";
//apro il file in scrittura, scrivo la stringa e chiudo il file
$scrivi_file=fopen("messaggi.txt","a");
$stringa="<".$nome." da"." ".$citta.":"." ".$messaggio." ("."$data_g"."/"."$data_m"."/"."$data_a".")";
$fw= fwrite($scrivi_file,$stringa."\r\n");
fclose($scrivi_file);
}
?>
La parte di codice inserita in Guest.php, che mi visualizza il messaggio a video.
Codice PHP:
<?php
// parametri di configurazione
$filename="messaggi.txt"; // file delle frasi
$delim="<"; // delimitatore di frase
// apri il file delle frasi
$fd=fopen($filename,"r");
//conta il totale delle righe, quindi dei messaggi
$totMex=count(file($filename));
// legge il file
$contents = fread ($fd, filesize ($filename));
//estrae per riga
$frase= explode($delim,$contents);
//in ordine inverso i messaggi
$frase_reverse= array_reverse($frase);
if (sizeof($frase) <= "1")
{
echo "$PHP_SELF: Errore, nessun array, sto uscendo...";
exit;
}
foreach ($frase_reverse as $valore) {
?>
<table width="100%">
<tr>
<td bgcolor="#666666">
<?php echo "<left>$valore
</left>"; ?>
</td>
</tr>
</table>
<?php
}
// chiude il file
fclose ($fd);
?>