Ответ 1
Используйте trim()
вместо str_replace
У меня есть два файла. Первый файл представляет собой форму, и второй файл отображает результат.
Первый файл:
<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]), и теперь все в порядке
Используйте trim()
вместо str_replace
Вы можете использовать trim вместо использования str_replace
для этого.
В основном, 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()
(конечно, если вам все еще нужно).
Может быть, это пробелы без пробелов, такие как без разрывов (nbsp) или некоторая часть комбинации строк?
Попробуйте nl2br()
, может быть возврат каретки или новая строка (\ r\n,\n\r,\n и\г).
Я знаю его поздно, но могу помочь другим.
используйте это, когда требуется отступ документа.
$('document').ready(function()
{
$('textarea').each(function(){
$(this).val($(this).val().trim());
}
);
});