maler1988
@maler1988
Web-программист (1С Bitrix)

Как убрать неразрывный пробел из строки?

Считываю значение цены детали с прайса на google docs, в ячейку менеджер сохранил значение с неразрывным пробелом (возможно копипастил откуда то). Приходит такая строка ( так выглядит на сайте и в инспекторе joxi.ru/BA0dZPGIJdz5GA ):
1 000

Вначале пытался прогнать через htmlspecialchars() а затем вычистить пробелы с помощью str_replace() - не помогло. Так же пытался в str_replace() заменять строку ' ' - не помогло. Нашёл регулярку:
preg_replace('#(?: )+#s', '', $string);

не помогло, хотя при онлайн проверки регулярного выражения - работает отлично. Не могу понять в чём дело, как же удалить этот ненавистный пробел ( боюсь если менеджеров по рукам бить результата не будет, поэтому надо на стороне кода это решить).
  • Вопрос задан
  • 11900 просмотров
Пригласить эксперта
Ответы на вопрос 6
@ReactiveSnaile
Ращу PHP
$price = str_replace(array(" ", chr(0xC2).chr(0xA0)), '', $price);
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
регулярка ждя удаления/замены любых пробелов и переносов \s+
Ответ написан
qork
@qork
{ background: #F00B42 }
str_replace([' ',' '],'',$price);
Ответ написан
@andrey_o_v
это он отображается как   а по факту может иметь какой нибудь код символа, кодировка строки может отличается.
Вот например статья "Интересный нюанс с пробелами при чистке текстов функцией preg_replace"
https://ph0en1x.net/17-interesnyj-nyuans-s-probela...
он hex редактор использует, думаю есть проще пути решения) какой нибудь онлайн детектор, парсер символов, типа все символы отобразить кодами
Ответ написан
Комментировать
@Nikita11111111
str_replace(chr(160), ' ', html_entity_decode($arFields['NAME']))
Ответ написан
Комментировать
@1gor007
str_replace("\xC2\xA0", "", $price);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы