Часто бывает, что информация, которую мы получаем из базы данных приходит к нам не совсем в том виде, в котором бы должна.
Из-за этого приходится обрабатывать пришедшие данные, чтобы получить необходимый результат. Ситуации бывают разные. Например, бывает, что нужно заменить определенные символы и слова на другие или обрезать пришедшую строку до определенного символа.
Сегодня поговорим о ситуации, когда строка приходит вроде бы с пробелами, но на самом деле вместо пробелов в коде вы увидите . Это легко увидеть, если посмотреть на выводимую переменную в инспекторе кода любого браузера.
Зачем убирать закодированный неразрывный пробел
– По сути является элементом компьютерной кодировки. Визуально на веб-странице он отображается как обычный пробел. Главное его отличие – это то, что является неразрывным пробелом, а следовательно строка не разрывается.
Почему и когда это важно?
Ну например, если мы захотим для какой-то строки использовать css свойство word-break, чтобы задать определенные правила переноса, то для строки с неразрывными пробелами это свойство сработает некорректно.
Убираем неразрывные пробелы из строки
Если информация приходит из базы данных, то на ум приходят 2 варианта: либо прошерстить базу и заменить неразрывные пробелы, либо исправить уже пришедшую строку.
Мы воспользуемся вторым вариантом. Сразу хочу сказать, что просто str_replace здесь не сработает. Нужно будет добавить в нашу формулу еще и htmlentities – которая преобразует все возможные символы в соответствующие html сущности.
Допустим, что мы получили из базы данных строку с неразрывными пробелами и сохранили ее в переменной my_text.
Тогда код для замены неразрывных пробелов на обычные будет выглядеть так:
<?php $new_text = str_replace(" "," ", htmlentities($my_text));
Теперь в переменной $new_text у нас хранится обработанный текст.
Вот и всё. Надеюсь эта статья вам поможет. Делитесь в социальных сетях, оставляйте комментарии. Приятной работы 😉
У меня на сайте в коде этот неразрывный пробел штук по 30 в каждой статье. Не пойму надо ли их удалять или поисковики на них не реагируют?
Насколько мне известно, на поисковую выдачу это особо негативно не влияет.
Благодарю! Помогли)