如何使文本显示为textarea的原始输入

时间:2014-11-01 08:44:36

标签: javascript php html html5

我一直在尝试格式化从文本区域获取的字符串。我希望它显示从文本区域输入看起来像原始。您会看到我使用了很多功能,如果不重要,请告诉我。

PHP

$detail = nl2br(addslashes($_POST['detail']));
$detail = trim($detail);
$detail = str_replace("\r\n","",$detail);
//remove html tags except br prevent it show as html style
$detail = strip_tags($detail, '<br>');
// don't allow consequent new line 
$detail = preg_replace('#(<br */?>\s*){2,}#i', '<br /><br />', $detail);

来自文本区域的示例输入字符串,我希望它在我echo $detail

时显示如下
#include <iostream>

using namesspace std;

int main(){
return 0;
}

The most tragic<br /> 
<h1> thing in the world</h1>

 is a man of genius who is not a man of honor. 

但下面是我得到的结果,我知道这是因为我使用strip_tags。现在,我不知道请帮忙。您会看到一些文字消失,<iostream> <br /> <h1>等等。

#include

using namesspace std;

int main(){
return 0;
}

The most tragic

thing in the world

is a man of genius who is not a man of honor.

另一个例子,如果这是一个输入,它应该显示相同。但对于我的代码,没有任何显示。

<textarea rows="7" cols="50" onkeyPress="return addP(event,this)"></textarea> 

1 个答案:

答案 0 :(得分:0)

添加

$detail = htmlspecialchars($detail);

换新行,使用PHP_EOL变量,或将<br>替换为\n

http://php.net/manual/en/function.htmlspecialchars.php