PHP - 从Textarea中删除换行符

时间:2016-10-25 18:31:56

标签: javascript php html csv line-breaks

我想知道我的代码中缺少什么。我有一个大型表单,将所有值推送到.csv file。有textareas的实例,每次我放入一些文本内容并在.csv文档中添加换行符(按Enter键),第一行后的任何文本行都会打破.csv中的值,并开始一个新行。

我已经尝试通过php检查获取值并删除任何空格或中断,但它似乎没有工作。

有谁能告诉我我错过了什么?

HTML:

<textarea id="fianlCommentsText" name="fianlCommentsText"></textarea>

PHP:

$finalCommentsText = $_POST["finalCommentsText"];
function finalCommentsLineCheck()
    {
        global $finalCommentsText;
        preg_replace( "/\r|\n/", "", $finalCommentsText );
    }
    finalCommentsLineCheck();

3 个答案:

答案 0 :(得分:1)

\ r或\ n的“选择”需要parens:

preg_replace( "/(\r|\n)/", "", $finalCommentsText );

试试吗?

答案 1 :(得分:0)

为了允许csv中的多行字段,您需要使用"

引用它们

例如:

12345,"multiline
text",another_field

如果您的文字中有引号,请使用其他引号将其转义:

12345,"27"" monitor 
TFT",another_field

这样您就可以在文本中保留换行符。

答案 2 :(得分:0)

在我的情况下,我以这种方式解决了:

输出到textarea删除'\ n'字符:

<!-- this textarea will show blank carriage return and not \n characters -->
<textarea  class="settinginput" id="message" name="message">
<?php echo str_replace('\n',"\n",$message); ?>
</textarea>

提交之后是如何用'\ n'替换回车符而不是扩展字符:

str_replace("\r\n",'\n',$_POST['message'])

请注意,replace函数使用双引号和单引号来保存字符串,而不对转义序列进行扩展。