PDA

View Full Version : [PHP] scrivere su file da textarea


Damage92
08-04-2010, 22:12
Sono nuovo di php, e mi sono bloccato...
Questo script:


<?php

$fp = fopen('messages', 'a');

$testo = str_replace("\n", "<br>", $_POST['input_message']);
fwrite($fp, $testo);

fclose($fp);

?>


Prende un testo da una textarea (contenuta in un form), poi sostituisce gli accapo con un <br>.

Poi dovrebbe scrivere il risultato nel file "messages", invece in quel file scrive solo <br> seguito dall'ultima riga che c'era nella textarea... e quelle prima che fine hanno fatto!?

Per esempio, se nella textarea metto:
riga1
riga2
riga3
Il risultato nel file è:
<br>riga3

chiedo illuminazioni... grazie!

Damage92
09-04-2010, 20:28
Eppure sono sicuro che il codice sia giusto! Nessuno ha suggerimenti? :(

Torav
09-04-2010, 21:36
prova ad usare questa (http://php.net/manual/en/function.nl2br.php) funzione al posto di str_replace

Damage92
10-04-2010, 09:39
prova ad usare questa (http://php.net/manual/en/function.nl2br.php) funzione al posto di str_replace

Grazie per il suggerimento, ma proprio ieri sera ho scoperto che utilizzando "\r\n" al posto di "\n" funziona... non so per quale arcano motivo...

$testo = str_replace("\r\n", "<br>", $_POST['input_message']);

Purtroppo la funzione nl2br scrive il tag <br> in xhtml (ovvero <br />) e questo è fuori specifica con l'html :( Solo con php>=5.3.0 si può specificare di usare <br>.