PHP获取用户输入并保留新行
问题描述:
我有一个字符串需要被程序解释,该程序标记具有特定子字符串的字符串的开始和结束。PHP获取用户输入并保留新行
例如它理解
"Dog
The information I need
Cat"
但不是
"DogTheinformationIneedCat" (or "Dog TheinformationIneed Cat")
现在的问题是我从用户提交的textarea检索数据,但是当这被认为是它剔除掉所有的换行符和数据变得毫无用处。
如何从用户获取输入并保留换行符。
答
默认情况下,该行被保存在数据库中的\n
当从数据库中取文字的形式,使用本地PHP函数nl2br
自动转换“换行”到HTML标签<br
>有通过保留你的新线路。
只是用它作为nl2br($your_string);
例如:
function retrieve_data() {
$data = get_data_from_db() // your get data function
return nl2br($data); // this is where the magic happens *THIS IS NOT SAFE DON'T USE ON LIVE SERVER
}
save_data($data_from_text_area); // your save data function
echo retrieve_data() // will echo text with `<br`>
希望这有助于!
编辑:
而且,从数据库输出文本时,应注意将消毒用户输入,以避免XSS攻击!
例子:
function sanitize_string($string) {
return filter_var($string, FILTERS_SANITIZE_STRING);
}
echo nl2br(sanitize_string($string));
的数据不会从DB来了,我直接从形式到应用程序得到它从用户。出于某种原因,这似乎没有带来新行 – 2014-10-04 02:01:03
你能告诉我们你的代码,以便我们可以帮助你更好吗?谢谢。 – 2014-10-04 02:03:35
对不起,可能会有所帮助。 https://github.com/wlox/wlox-frontend/blob/master/htdocs/settings.php 信息从这里 去这里: https://github.com/wlox/wlox- api/blob/master/lib/User.php Line 408 – 2014-10-04 02:08:38