Domanda

Alcuni campi nel nostro db mysql sembrano contenere caratteri di nuova riga in modo che se seleziono su di loro qualcosa di simile alla seguente sarà restituito per una singola chiamata SQL:

Life to be sure is nothing much to lose

But young men think it is and we were young

Se voglio preservare le interruzioni di riga quando si visualizzano questo campo su una pagina web, è la soluzione standard per scrivere uno script per sostituire '\ n \ r' con un tag br HTML o c'è un modo migliore?

Grazie!

È stato utile?

Soluzione

Supponendo PHP qui ...

nl2br() aggiunge <br /> per ogni \n. Non dimenticate di sfuggire il contenuto prima, per prevenire attacchi XSS. Vedi sotto:

<?php echo nl2br(htmlspecialchars($content)); ?>

Altri suggerimenti

HTML è un markup la lingua. Indipendentemente dal numero di interruzioni di linea si inserisce nel codice sorgente, non si vede nulla da esso indietro nella presentazione (ovviamente supponendo che non si sta utilizzando <pre> o white-space:pre). HTML utilizza l'elemento <br> per rappresentare un'interruzione di riga. Quindi è fondamentalmente davvero bisogno di convertire le interruzioni di linea reali e invisibili indicate con i personaggi xA (nuova riga, avanzamento, LF, \n) e / o xD (ritorno carrello, CR, \r) da un elemento <br> HTML.

Nella maggior parte dei linguaggi di programmazione è possibile solo fare questo da un stringa sostituire di "\n" da "<br>".

È possibile avvolgere in <pre> .. </pre>.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top