Как вы обрезаете пробел в начале и в конце каждой новой строки с помощью PHP или регулярного выражения?
Например,
$text = "similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga ";
Должно быть,
$text = "similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga ";
Использование регулярного выражения, безусловно, быстрее для этой задачи. Но если вам нравятся функции вложенности, это также позволит trim
пробелы со всех строк:
$text = join("\n", array_map("trim", explode("\n", $text)));
<textarea style="width:600px;height:400px;"> <?php $text = "similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga "; echo preg_replace("/(^\s+|\s+$)/m","\r\n",$text); ?> </textarea>
Я добавил testarea, чтобы вы могли ясно видеть новые строки
1-е решение:
Разделите свою исходную строку символом новой строки с помощью explode , используйте обрезку для каждого токена, а затем перестройте исходную строку …
Второе решение:
Замените это регулярное выражение \ s * \ n \ s * на \ n с помощью preg_replace .
Вы можете использовать любой горизонтальный символ пробельного символа и функцию preg_replace
чтобы заменить их ничем:
$text = trim(preg_replace('/(^\h+|\h+$)/mu', '', $text));
Если вам нужно сохранить пробел в файле ned remove trim
или заменить на функцию ltrim
Здесь другое регулярное выражение, которое обрезает пробел при начале конца каждой строки.
$text = preg_replace('/^[\t ]+|[\t ]+$/m', '', $text);
См. Модификатор / m
Решение Марио работает хорошо (спасибо за то, что марио – спасли мой день). Может быть, кто-нибудь может объяснить, почему, почему мои более поздние проверки кросс-платформенных совместимых разрывов строк, такие как
(strstr($text, PHP_EOL))
до FALSE, даже когда разрыв строки существует.
Во всяком случае, изменение «\ n» на PHP_EOL исправило проблему:
$text = join(PHP_EOL, array_map("trim", explode(PHP_EOL, $text)));