Обрезать пробелы в строке - PullRequest
       42

Обрезать пробелы в строке

1 голос
/ 25 августа 2011

PHP: Я хочу trim() пропустить начало строки, используя php, но настройки по умолчанию в trim() не обрабатывают символы пробела.Пустое пространство длиной 7 пробелов.Есть ли способ удалить 7 пробелов, используя trim() или другую функцию?

Функция, которая обрезает все до "нормального" символа (кавычки, как я не знаю, как вызвать нормальный символ)встречается будет работать.

Ответы [ 5 ]

1 голос
/ 25 августа 2011

Чтобы избавиться от всевозможных злых пробелов (есть больше, чем просто варианты ASCII), вы можете использовать preg_replace:

$str = preg_replace('/^\pZ+/u', '', $str);

Если это не сработаеттогда вам придется сначала посмотреть на реальных персонажей.Используйте bin2hex() или гекседитор по вашему выбору, чтобы проверить, что у вас есть в вашей строке.

1 голос
/ 25 августа 2011

Функция php trim (), следуя своей спецификации, удаляет все пробельные символы из начала и конца строки, где пробел включает пробел, табуляцию, символы новой строки и нулевой байт. Я думаю, вы, должно быть, используете это неправильно тогда? Некоторый код определенно поможет решить вашу проблему.

1 голос
/ 25 августа 2011

Используйте метод ltrim().

http://www.php.net/manual/en/function.ltrim.php

0 голосов
/ 25 августа 2011

Это должно быть все, что вам нужно:

function remWhite($str) {
    $value = preg_replace('/\s+/', '',$str);
    return $value;
}
0 голосов
/ 25 августа 2011

trim () по умолчанию обрабатывает следующие пробельные символы:

  • "" (ASCII 32 (0x20)), обычный пробел.
  • "\ t" (ASCII 9 (0x09)), табуляция.
  • "\ n" (ASCII 10 (0x0A)), новая строка (перевод строки).
  • "\ r" (ASCII 13 (0x0D)), возврат каретки.
  • "\ 0" (ASCII 0 (0x00)), NUL-байт.
  • "\ x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

это будет означать, что ваш пробел не является одним из них. Если вы можете выяснить, что это за пробел, вы можете указать его в качестве аргумента для trim ()

...