PHP在插入MySQL之前删除换行符

时间:2017-08-07 15:48:09

标签: php mysql

我一直在寻找解决这个问题的日子:

我无法从字符串中删除换行符。 我试过了:“

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]

祝你好运, 罗尼

2 个答案:

答案 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)

使用strip_tags

echo strip_tags("Hello <b><i>world!</i></b>");

编辑

根据建议strip_tags不会在新行上工作,在这种情况下你可以使用regex

$string = trim(preg_replace('/\s+/', ' ', $string));