问题:
在后台textarea里编辑了有一串字符串,虽然在textarea里编辑是有换行效果的,但是数据获取到就只是\n,前端是不认识这个的,正确输出到前台的换行只能是<br/>。
$str = "ABCD
EFGH
IJKLM
NOPQ";
echo $str;
打印效果:
换行其实是被识别成\r\n。
解决:
$str = htmlentities(trim($loginWhiteList), ENT_QUOTES, "utf-8");
$str = nl2br($str);
echo $str;
htmlentities()函数把字符转换为HTML实体。我觉得更好的解释是转义HTML标签,从而得到不包含HTML格式的字符串,字符串是什么样输出就是什么样。
nl2br()它的作用是将字符串中的换行符(\n)替换成 HTML 的换行标记。
这里其实只用nl2br()就可以实现,先用htmlentities()只是防止向浏览器输出一些HTML标签。