I have two files. First file is a form and the second file displays result.
First file:
<form action="show.php" method=post>
<textarea name="test" cols=40 rows=6>
</textarea>
<input type=submit value="submit">
</form>
Second file:
<?php
$text = trim($_POST['test']);
$textAr = explode("\n", $text);
for ($i=0; $i<sizeof($textAr); $i++)
{
$link = str_replace(" ", "", $textAr[$i]);
echo $link."---<br>";
}
?>
When I enter in the form for example
one
two
three
the result is:
one ---
two ---
three---
at the end on the strings: one and two there are whitespaces that I can't remove. Can anybody help me with this?
Thanks I used $link = str_replace("\r", "", $textAr[$i]) and now everything is ok
Use trim()
instead of str_replace
You can use trim function instead of using str_replace
to do that.
Basically, textarea
's linebreaks are \r\n
in Internet Explorer, and \n
in all other browsers (including Mac's). IE uses \n
too since version 9.
There are numerous ways to fix your code. For example, you could try preg_split()
:
preg_split('/(?:\r\n|\n)/', $text);
However, I haven't tested the performances of this proposal.
Also, very important, be sure to put the \r\n
before the \n
in the regex!
Besides, trim()
is way more suited than str_replace()
(of course if you still need it).
Maybe it's non space whitespaces like non-break-spaces (nbsp) or some part of a linebreak combination?
Try nl2br()
function, could be carriage return or new line (\r\n, \n\r, \n and \r).
I know its late but may help others.
use this in when document indentation is required.
$('document').ready(function()
{
$('textarea').each(function(){
$(this).val($(this).val().trim());
}
);
});