Заменяет ли html_entity_decode & nbsp; также? Если нет, то как его заменить?

У меня есть ситуация, когда я передаю строку функции. Я хочу конвертировать   до "" (пустое пространство), прежде чем передавать его функции. Делает ли это html_entity_decode ?

Если не так, как это сделать?

Я знаю о str_replace но есть ли другой выход?

Related of "Заменяет ли html_entity_decode & nbsp; также? Если нет, то как его заменить?"

Цитата из html_entity_decode() :

Вы можете задаться вопросом, почему trim(html_entity_decode(' ')); не уменьшает строку до пустой строки, это потому, что ' ' объект не является кодом ASCII 32 (который разделяется с помощью trim ()), но ASCII-код 160 (0xa0) в стандартном наборе символов ISO 8859-1 по умолчанию.

Вы можете использовать str_replace() для замены символа ascii # 160 на пробел:

 <?php $a = html_entity_decode('>&nbsp;<'); echo 'before ' . $a . PHP_EOL; $a = str_replace("\xA0", ' ', $a); echo ' after ' . $a . PHP_EOL; 

ДА

См. Руководство по PHP http://php.net/manual/en/function.html-entity-decode.php .

Внимательно прочитайте заметки , возможно, это проблема, с которой вы сталкиваетесь:

Вы можете задаться вопросом, почему trim (html_entity_decode ('')); не сводит строку к пустой строке, потому что «объект» не является кодом ASCII 32 (который разделяется с помощью trim ()), а кодом ASCII 160 (0xa0) в стандартном наборе символов ISO 8859-1 по умолчанию.

html_entity_decode делает преобразование &nbsp; (ASCII 32), но неразрывное пространство (ASCII 160) (так как это определение &nbsp; ).

Если вам нужно преобразовать в ASCII 32, вам все равно потребуется str_replace() или, в зависимости от вашей ситуации, preg_match("/s+", ' ', $string) для преобразования всех видов пробелов в простые пространства.