我一直在寻找解决这个问题的日子:
我无法从字符串中删除换行符。 我试过了:“
str_replace(PHP_EOL, '[br]',($_POST['replytext']))
$data['message'] = nl2br($_POST['replytext']);
$data['message'] = str_replace('<br />', '[br]', $_POST['replytext']);
例如,nl2br会将换行符转换为<br />
,但它也会添加一行。任何人都知道如何剥离所有进入?更好的事情:用'[br]'替换它们?
删除换行符的示例代码(已经是nl2br'ed):
<br />
<br />
testt
我知道如何preg替换(例如)<br />
代码。这只是你在<br />
之后看到的输入。
我真的希望有人有解决方案,因为我一直试图让这个工作好几天,我的脑袋即将爆炸。
修改
可以添加到文本区域的示例帖子:
This is my reply. blabla
Some new lines, and now the quoted text below:
[quote=DaSP date=2017-08-07 17:42:37]dsaasdasd[br][br]asdasd[br][br]asd[br]asd[br][br][quote=DaSP date=2017-08-07 17:42:28]asd[br][br][quote=DaSP date=2017-08-07 17:16:06][br][br]fg[/quote][/quote][/quote]
祝你好运, 罗尼
答案 0 :(得分:1)
然后使用以下功能。这可能也可以使用preg_replace来完成,但这里使用的是str_replace。
function replaceWithBr($str)
{
$str = trim($str);
$str = str_replace("\r\n", "[br]", $str);
$str = str_replace("\r", "[br]", $str);
$str = str_replace("\n", "[br]", $str);
return $str;
}
$text = "hello
test
more lines,
Thanks,
";
echo $text."<br >";
echo replaceWithBr($text)."<br >";
答案 1 :(得分:-2)
echo strip_tags("Hello <b><i>world!</i></b>");
编辑
根据建议strip_tags
不会在新行上工作,在这种情况下你可以使用regex
$string = trim(preg_replace('/\s+/', ' ', $string));