Заменяет ли html_entity_decode также? Если нет, то как его заменить?
У меня есть ситуация, когда я передаю строку функции. Я хочу преобразовать в "" (пробел), прежде чем передавать его функции. Это делает html_entity_decode?
Вы можете удивиться, почему trim(html_entity_decode(' '));не уменьшает строку до пустого string, потому что ' 'объект не является кодом ASCII 32 (который является снято с помощью trim()), но код ASCII 160 (0xa0) в стандарте ISO 8859-1 по умолчанию CharacterSet.
Вы можете использовать str_replace() для замены символа ascii # 160 на пробел:
Внимательно прочитайте Примечания, возможно, это проблема, с которой вы сталкиваетесь:
Вы можете задаться вопросом, почему trim (html_entity_decode (' ')); не уменьшает строку до пустой строки, что, поскольку ' ' объект не является кодом ASCII 32 (который разделяется с помощью trim()), но код ASCII 160 (0xa0) в стандартном наборе символов ISO 8859-1 по умолчанию.
Ответ 3
html_entity_decode преобразует в пробел, просто не "простой" (ASCII 32), а неразрывное пространство (ASCII 160) (так как это определение ).
Если вам нужно преобразовать в ASCII 32, вам все равно потребуется str_replace() или, в зависимости от вашей ситуации, preg_match("/s+", ' ', $string), чтобы преобразовать все типы пробелов в простые пробелы.