我一直在尝试格式化从文本区域获取的字符串。我希望它显示从文本区域输入看起来像原始。您会看到我使用了很多功能,如果不重要,请告诉我。
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>
答案 0 :(得分:0)
添加
$detail = htmlspecialchars($detail);
换新行,使用PHP_EOL
变量,或将<br>
替换为\n