unescape una remove htmlentities html_entity_decode eliminar caracteres cadena php string replace

una - Recortar & nbsp; con PHP



unescape php (7)

Encontré esto en php.net, funciona muy bien:

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

Fuente: http://php.net/manual/en/function.trim.php#98812

Tengo una frase como esta.

1 $nbsp;     2     3   4

Como ves, entre 1 2 y 3 de texto, hay espacios adicionales. Quiero la salida con un solo espacio entre ellos. por lo que mi salida será 1 2 3 4

Si utilizo recortar, solo puede eliminar los espacios en blanco, pero no que   ¿Cómo puedo usar el recorte de PHP para obtener la salida de esta manera?


Un poco tarde para responder, pero espero que pueda ayudar a alguien más. Lo más importante al extraer contenido de html es usar utf8_decode() en php. Entonces todas las demás operaciones de cuerdas se convierten en una brisa. Incluso los caracteres extranjeros pueden reemplazarse copiando directamente los caracteres de pegado desde el navegador al código php. La siguiente función reemplaza   con un espacio. Luego, todos los espacios en blanco adicionales se reemplazan con un solo espacio en blanco usando preg_replace() . Los espacios en blanco iniciales y finales se eliminan al final.

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



si tu cadena realmente tiene "",

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


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


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


echo str_replace ( " ", "", "1       2     3   4" );

solo recuerde que debe hacer eco del resultado de str_replace y tampoco debe preocuparse por los espacios en blanco, ya que el navegador solo mostrará un espacio en blanco.