2010-10-12 15 views
16

Come si crea una nuova riga in una textarea quando si inserisce il testo tramite php?php :: new line in textarea?

Ho pensato che fosse \n ma che viene letteralmente stampato nella textarea.

Grazie

+4

Mostraci il tuo codice, scommetto che stai facendo qualcosa come "echo" \ n ";" invece di "echo" \ n ";'. –

+0

effettivamente sto facendo echo $ contatto-> indirizzo; Per farlo funzionare ho bisogno di fare 'str_replace ('\ n'," \ n ", $ contatto-> indirizzo)' che è ritardato. Perché? – Hailwood

+0

Come stai memorizzando i dati. Qualcosa si sta perdendo nella traduzione. Hai 'add_slashes'? Salva in un database? –

risposta

59

Senza vedere il tuo codice non posso esserne sicuro, ma suppongo che tu stia usando virgolette singole ('\ n') invece di virgolette doppie ("\ n").

PHP valuterà solo le sequenze di escape se la stringa è racchiusa tra virgolette. Se usi '\ n', PHP lo prenderà come una stringa letterale. Se si utilizza "\ n", PHP analizzerà la stringa per le variabili e le sequenze di escape e stamperà una nuova riga come ci si aspetta.

+2

E che cosa succede se non si usano virgolette;) (cioè viene direttamente da una variabile – Hailwood

+0

Come si imposta la variabile? Invia un po 'di codice? –

0

ho usato \p per file di testo. prova

-1
$row['content']=stripslashes($row['content']); 
$row['content']=str_replace('<br />',"newline",$row['content']); 
$row['content']=htmlentities($row['content']); 
$row['content']=str_replace('newline',"<br>",$row['content']); 
+0

Benvenuto in SO jim. Aggiungi una piccola spiegazione alle tue risposte per favore – kolossus

6

Prova

$text = 'text line one' . PHP_EOL . 'text line two'; 
echo '<textarea>' . $text . '</textarea>'; 

Aggiungerà ogni testo on line Reparate in texarea.

-3

Usa come questo per entrare in modo dinamico ogni linea è possibile utilizzare

echo chr(13) 
4

PHP Side: da stringa Textarea a stringa PHP

$newList = ereg_replace("\n",'|', $_POST['theTextareaContents']); 

PHP laterale: stringa PHP torna a stringa TextArea:

$list = str_replace('|', '&#13;&#10;', $r['db_field_name']); 
+0

eccitabilmente quello che sto cercando –

+0

Impressionante bro. Funzionava esattamente quello di cui avevo bisogno –

0

Ciò che Alay Geleynse ha detto era giusto, ho avuto lo stesso problema di te e il problema era dovuto t o c'erano i caratteri di escape (\ r, \ n). Per "senza caratteri" la variabile che ho usato è $var = stripcslashes($var) e viene mostrata correttamente