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)); 
+0

的数据不会从DB来了,我直接从形式到应用程序得到它从用户。出于某种原因,这似乎没有带来新行 – 2014-10-04 02:01:03

+0

你能告诉我们你的代码,以便我们可以帮助你更好吗?谢谢。 – 2014-10-04 02:03:35

+0

对不起,可能会有所帮助。 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