无法从PHP中的字符串中删除所有换行符

Dob*_*tJr 2 php whitespace

我有一个基本的textarea表格.我要做的是在提交后删除textarea中的所有换行符.

这是我的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;
   }
?>
Run Code Online (Sandbox Code Playgroud)

现在让我说填写表单时我按Shift + Enter,在我的字符串中创建一个\n,但在提交表单后,$ newtext仍然等于"\n",不应该删除"\n",因为我'替换它""

谢谢.

Cal*_*Cal 13

问题是你\n首先逃避了MySQL.试试这个:

<?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;
   }
?>
Run Code Online (Sandbox Code Playgroud)

阅读您正在使用的转义函数,以了解原因:http://php.net/mysql_real_escape_string