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

时间:2012-03-28 19:56:54

标签: 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;
   }
?>

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

替换它

感谢。

2 个答案:

答案 0 :(得分:12)

问题是你首先逃脱了\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;
   }
?>

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

答案 1 :(得分:0)

请使用以下代码, 或者复制粘贴CK编辑器中的内容并替换你想要替换的字符......

 <?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; ?>