Не удается удалить пробелы из текстового поля

У меня есть два файла. Первый файл представляет собой форму, и второй файл отображает результат.

Первый файл:

<form action="show.php" method=post>
<textarea name="test" cols=40 rows=6>
</textarea>
<input type=submit value="submit">
</form>

Второй файл:

<?php
$text = trim($_POST['test']);
$textAr = explode("\n", $text);

for ($i=0; $i<sizeof($textAr); $i++)
{
    $link = str_replace(" ", "", $textAr[$i]);
    echo $link."---<br>";
}
?>

Когда я вхожу в форму, например

one
two
three

результат:

one ---
two ---
three---

в конце строки: один и два есть пробелы, которые я не могу удалить. Может ли кто-нибудь помочь мне в этом?

Спасибо, я использовал $link = str_replace ( "\ r", "", $textAr [$ i]), и теперь все в порядке

Ответ 1

Используйте trim() вместо str_replace

Ответ 2

Вы можете использовать trim вместо использования str_replace для этого.

Ответ 3

В основном, textarea linebreaks \r\n в Internet Explorer и \n во всех других браузерах (включая Mac). IE использует \n тоже со версии 9.


Существует множество способов исправить ваш код. Например, вы можете попробовать preg_split():

preg_split('/(?:\r\n|\n)/', $text);

Однако я не тестировал выступления этого предложения.

Кроме того, очень важно, не ставьте \r\n перед \n в регулярное выражение!


Кроме того, trim() больше подходит, чем str_replace() (конечно, если вам все еще нужно).

Ответ 4

Может быть, это пробелы без пробелов, такие как без разрывов (nbsp) или некоторая часть комбинации строк?

Ответ 5

Попробуйте nl2br(), может быть возврат каретки или новая строка (\ r\n,\n\r,\n и\г).

Ответ 6

Я знаю его поздно, но могу помочь другим.

используйте это, когда требуется отступ документа.

$('document').ready(function()
{
    $('textarea').each(function(){
            $(this).val($(this).val().trim());
        }
    );
});