2017-08-07 72 views
0

我一直在尋找幾天來解決這個問題: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 

我知道如何更換浸漬料(比如)<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

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

+0

你可以發佈'$ _POST ['replytext']'? – chris85

+0

@OlandoP。這是否也會刪除空格?我之前嘗試s +(某些代碼,但沒有修剪)。修剪只是沒有做到。 –

回答

1

OK使用下面的函數即可。這可能也可以用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 >"; 
+0

文本之間的換行符如何?用戶可以發佈例如:(嗨用戶,(ENTER)你好嗎?(ENTER ENTER)@OP嗨,你也是)。這只是隨機的,你可以注意到哈哈。那些在textarea中的回車需要被替換爲[br]而不是MySQL中的新行。 –

+0

nl2br應該在這些新行之前添加
。你想完全刪除新行嗎? –

+0

嗨阿米特,所有換行符都需要用[br]替換。你通過在文本區按ENTER按鈕創建的所有新行 –

-2

使用strip_tags

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

編輯

作爲在這種情況下,新行建議strip_tags不會工作,你可以使用regex

​​
+0

這不會剝去新的線,如果他們是新線。 – chris85

+0

嗨Arun,strip_tags對於安全結局看起來很棒,但不適用於textarea中的新行(ENTER按鈕) –