php - requerimiento - nl2br() no funciona cuando se muestran resultados de SQL
requerimiento de joomla (1)
Pruebe de esta manera:
print nl2br(stripcslashes($shouts[$i]->msg));
Preste atención a la función stripcslashes()
, pero no a stripslashes()
O solo:
print nl2br($shouts[$i]->msg);
UPD: la función nl2br()
reemplaza /n
con <br />
. El problema es que no tiene /n
en su texto, pero tiene n
o //n
. Creo que no es necesario utilizar stripslashes()
cuando se obtienen datos de la base, excepto la situación en la que se han ecranizado los datos en su base.
En mi módulo de Joomla, estamos usando el siguiente código para obtener gritos de la base de datos
function getShouts($number, $timezone, $message) {
$shouts = array();
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select(''*'')
->from(''#__shoutbox'')
->order(''id DESC'');
$db->setQuery($query , 0 , $number);
$rows = $db->loadObjectList();
$i=0;
foreach ( $rows as $row ) {
$shouts[$i]->id = $row->id;
$shouts[$i]->name = $row->name;
$shouts[$i]->msg = $row->msg;
$i++;
}
return $shouts;
}
y el siguiente código para mostrarlo en default.php
print stripslashes($shouts[$i]->msg);
Sin embargo, esto está causando problemas cuando alguien quiere ingresar algo como lo siguiente:
test line 1
test line 2
Si entran en una nueva línea, la publicación se muestra como tal después de enviarla:
test line 1rntest line 2
Así que investigué y me di cuenta de que tenía que usar nl2br()
cual hice como se muestra a continuación:
print stripslashes(nl2br($shouts[$i]->msg));
sin embargo, no pareció resolver el problema. También intenté crear otra función en el helper para reemplazarla usando preg_replace
pero esto tampoco ayudó.
¿Alguien puede explicar por qué el corte de línea no funciona después de agregar nl2br()
y cómo solucionarlo?