2012-03-28 36 views
2

我有一個基本的textarea表單。我想要做的是從textarea提交後刪除所有換行符。無法從PHP中的字符串中刪除所有換行符

這裏是我的PHP:

<?php 
    if (isset ($_POST['comment_form_submit'])) { 
    $body = mysql_real_escape_string($_POST['body']); 

    $breaks = array("\r\n", "\n", "\r"); 
    $newtext = str_replace($breaks, "", $body); 

    echo $newtext; 
    } 
?> 

現在,讓我們說填補我外出時我按Shift + Enter形式,在我的字符串創建一個\ n,但提交表單後,$ newtext仍然等於「 \ n「,不應刪除」\ n「,因爲我將其替換爲」「

謝謝。

回答

12

問題是你首先逃避了MySQL的\n。試試這個:

<?php 
    if (isset ($_POST['comment_form_submit'])) { 
    $body = $_POST['body']; 

    $breaks = array("\r\n", "\n", "\r"); 
    $newtext = str_replace($breaks, "", $body); 

    $newtext = mysql_real_escape_string($newtext); 

    echo $newtext; 
    } 
?> 

閱讀關於你使用的是看爲什麼逃生功能:http://php.net/mysql_real_escape_string

+0

Duh..ok。不能相信我錯過了那個..謝謝Cal。 – DanielOlivasJr 2012-03-28 20:02:25

+1

@DobotJr記得將答案標記爲答案。 – 2012-03-28 20:05:45

+1

**''Warning' ** '這個擴展在PHP5.0.0以後不推薦使用,將來會被刪除,而應該使用MySQLi或者PDO_MySQL擴展。''[Source](http:/ /br1.php.net/mysql_real_escape_string)。 – 2014-04-14 13:06:16

0

請使用下面的代碼, 或複製並粘貼在CK編輯器中的內容並更換其中U所需的字符以取代...

<?php 
    $desc = trim(stripslashes($crw['Description'])); 
    $desc=str_replace(","," ",$desc); 
    $desc=str_replace("\r\n"," ",$desc); 
    $desc=str_replace("\n"," ",$desc); 
    $desc=str_replace("<br>"," ",$desc); 
    $desc=str_replace("<br />"," ",$desc); 
    echo $desc; ?> 
相關問題