在我的Joomla模块,我们使用下面的代码从数据库中获取长啸
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;
}
和下面的代码以在如default.php显示它
print stripslashes($shouts[$i]->msg);
然而,这时候有人想输入类似下面导致的问题:
test line 1
test line 2
如果他们再上新的生产线,后显示如下所示后提交:
test line 1rntest line 2
所以,我做了一些研究,并意识到我不得不使用nl2br()
我做到了,如下图所示:
print stripslashes(nl2br($shouts[$i]->msg));
然而,这似乎并没有解决问题。 我也试过在帮助创建另一个函数使用来取代它preg_replace
但这并没有帮助。
任何人都可以解释为什么换行不加入后工作nl2br()
以及如何解决它?