Eliminar el exceso de espacio en blanco de dentro de una cadena

Recibo una cadena de una consulta de base de datos, luego elimino todas las tags HTML, retornos de carro y líneas nuevas antes de ponerlo en un archivo CSV. Lo único es que no puedo encontrar una manera de eliminar el exceso de espacios en blanco entre las cadenas.

¿Cuál sería la mejor manera de eliminar los caracteres interiores en blanco?

No estoy seguro exactamente de lo que quiere pero aquí hay dos situaciones:

  1. Si solo está tratando con espacios en blanco excesivos al principio o al final de la cadena, puede usar trim() , ltrim() o rtrim() para eliminarla.

  2. Si se trata de espacios adicionales dentro de una cadena, considere un preg_replace de múltiples espacios en blanco " "* con un solo espacio en blanco " " .

Ejemplo:

 $foo = preg_replace('/\s+/', ' ', $foo); 
 $str = str_replace(' ','',$str); 

O bien, reemplace con guion bajo, & nbsp; etcétera etcétera.

$str = trim(preg_replace('/\s+/',' ', $str));

La línea de código anterior eliminará los espacios adicionales , así como los espacios iniciales y finales.

ninguno de los otros ejemplos me funcionó, así que he usado este:

 trim(preg_replace('/[\s\t\n\r\s]+/', ' ', $text_to_clean_up)) 

esto reemplaza todas las tabs, nuevas líneas, espacios dobles, etc. a simple 1 espacio.

Si desea reemplazar solo múltiples espacios en una cadena, por ejemplo: "this string have lots of space . " Y espera que la respuesta sea "this string have lots of space" , puede usar la siguiente solución:

 $strng = "this string have lots of space . "; $strng = trim(preg_replace('/\s+/',' ', $strng)); echo $strng; 

$str=preg_replace('/[\s]+/',' ',$str);

Para ampliar la respuesta de Sandip, tenía un montón de cadenas apareciendo en los registros que estaban mal codificados en bit.ly. Querían codificar solo la URL pero poner un identificador de Twitter y algunas otras cosas después de un espacio. Parecía esto

 ? productID =26%20via%20@LFS 

Normalmente, eso no sería un problema, pero recibo muchos bashs de inyección de SQL, por lo que redirecciono todo lo que no sea una ID válida a 404. Utilicé el método preg_replace para convertir la cadena inválida de productID en una ID de producto válido.

 $productID=preg_replace('/[\s]+.*/','',$productID); 

Busco un espacio en la URL y luego elimino todo después.