У меня два файла. Первый файл представляет собой форму, а второй – результат.
Первый файл:
<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
строки textarea
являются \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 и \ r).
Я знаю его поздно, но могу помочь другим.
используйте это, когда требуется отступ документа.
$('document').ready(function() { $('textarea').each(function(){ $(this).val($(this).val().trim()); } ); });