我正在尝试使用以下代码从MySQL数据库中获取所有行:
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end
def logged_in?
!current_user.nil?
end
我的问题是,如何使用此代码保留换行符?当我需要一个特定的字符串例如
时,我可以使用nl2br()来保留换行符$sql = "SELECT * FROM myTable";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
$output[]=$row;
}
echo json_encode($output);
但我想知道在数组中获取结果时如何使用相同的nl2br()?
我也提到了this question,但这只解释了一个字符串而不是数组。
如果无法做到这一点,请建议我采用其他方式。
答案 0 :(得分:2)
您需要确切知道您的json必须发送哪种文本流。使用php的nl2br函数将使用名为“br”的HTML标记替换换行符,用于在浏览器呈现HTML时显示换行符。如果使用此json流提供的应用程序需要纯文本而不是HTML,则使用nl2br不是正确的解决方案。在这种情况下,我建议在将字符串中的转义序列替换为“\ n”,然后将其作为参数发送到json_encode函数,并在json流消费者代码中充分处理您想要执行的操作的解码用它,HTML或其他任何东西。 在这种情况下,this question可能会有所帮助。
答案 1 :(得分:1)
使用array_map
您可以调用该函数,因此使用每个$row
的值,您可以获取值。
$sql = "SELECT * FROM myTable";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
$output[]=array_map("nl2br",$row);
}
echo json_encode($output);