Trim & nbsp; с PHP

У меня есть такое предложение.

1 $nbsp;     2     3   4 

Как видите, между 1 2 и 3 текстами есть дополнительные пробелы. Я хочу, чтобы выход имел только одно пространство между ними. поэтому мой выход будет 1 2 3 4

Если я использую обрезку, он может удалить только пробелы, но не тот   Как я могу использовать обрезку PHP, чтобы получить результат следующим образом?

 $str = "1 $nbsp;     2     3   4"; $new_str = str_replace(" ", '', $str); 

Нашел это на php.net, отлично работает:

 $str = " abc"; $converted = strtr($myHTML, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES))); trim($converted, chr(0xC2).chr(0xA0)); 

Источник: http://php.net/manual/en/function.trim.php#98812

Более инклюзивный ответ для тех, кто хочет просто сделать обрезку:

 $str = trim($str, " \t\n\r\0\x0B\xC2\xA0"); 

То же, что и html-элементы управления обрезкой:

 $str = trim(html_entity_decode($str), " \t\n\r\0\x0B\xC2\xA0"); 

Это взаимодействие html_entity_decode и trim обрисовано в документах PHP здесь: http://php.net/manual/en/function.html-entity-decode.php#refsect1-function.html-entity-decode-notes

 $str = " abc "; echo trim($str, "\xC2\xA0"); //abc 

если у вашей строки действительно есть "",

 $str="1       2     3   4"; $s = str_replace("  ","",$str); print $s; 
 echo str_replace ( " ", "", "1       2     3   4" ); 

просто помните, что вам нужно отобразить результат str_replace, и вам не нужно беспокоиться о белых пространствах, браузер будет показывать только одно пустое пространство.

Немного поздно ответить, но, надеюсь, может помочь кому-то другому. Наиболее важным при извлечении контента из html является использование utf8_decode () в php. Тогда все остальные струнные операции становятся легкими. Даже иностранные символы могут быть заменены путем непосредственного копирования вставки символов из браузера в php-код. Следующая функция заменяет   с пространством. Затем все лишние пробелы заменяются одним пробелом, используя preg_replace() . Верхние и конечные пробелы удаляются в конце.

 function clean($str) { $str = utf8_decode($str); $str = str_replace(" ", " ", $str); $str = preg_replace('/\s+/', ' ',$str); $str = trim($str); return $str; } $html = "1 $nbsp;     2     3   4"; $output = clean($html); echo $output; 

1 2 3 4