Theodore Steiner
Theodore Steiner

Reputation: 1615

PHP - Remove Line Breaks From Textarea

I was wondering what I am missing in my code. I have a large form that is pushing all values to a .csv file. There are instances of textareas and every time I put some text content in and add a line break (hit the enter-key) within the .csv document, any line of text after the first breaks the flow of the values within the .csv, and starts a new line.

I've tried checking taking the value via php and removing any spaces or breaks, but it doesn't seem to be working.

Can anyone tell me what I am missing?

HTML:

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

PHP:

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

Upvotes: 0

Views: 5471

Answers (3)

Matteo Conta
Matteo Conta

Reputation: 1449

In my case I solved in this way:

Output to a textarea removing the '\n' characters:

<!-- 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>

After submit here is how to replace the carriage returns with the '\n' not expanded characters:

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

Note that the replace function uses double quotes and single quotes in order to save the string with no expansion for escape sequences.

Upvotes: 2

WEBjuju
WEBjuju

Reputation: 6581

The "choice" of \r or \n requires parens:

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

Try that?

Upvotes: 2

Danny_ds
Danny_ds

Reputation: 11406

In order to allow multiline fields in csv, you need to quote them with "

For example:

12345,"multiline
text",another_field

In case you have quotes inside your text, just escape them with another quote:

12345,"27"" monitor 
TFT",another_field

This way you can keep the newlines inside the text.

Upvotes: 0

Related Questions