私の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()
とその修正方法を誰かが説明できますか?