Quitar saltos de linea, tabulaciones y retorno de carro en PHP

Una vez más os traigo problemas y soluciones que nos encontramos todos los días en PHP.

Esta vez se trata de quitar o eliminar los saltos de linea, tabulaciones, retornos de carro, tabulación vertical (poco usada) y carácter nulo.

Sobre todo lo que más nos encontraremos cuando modifiquemos cadenas (strings) serán  tabulaciones y saltos de linea.

Buenos os voy a enseñar dos métodos para poder hacer esto.

El primero sería usando la función trim() y segundo sería usando el reemplazo de caracteres en la cadena mediante una expresión regular con la función eregi_replace().

  • trim() - es la función por excelencia para eliminar los espacios en blanco sobrantes por delante y por detrás en una cadena. Lo que no todo el mundo sabe es que esta función también elimina los satos de linea "\n", tabulaciones "\t", retornos de carro "\r", byte NUL "\0" y la tabulación vertical "\x0B". Más información.

 ejemplo de uso de trim():

$cadena = " esto es una cadena que contiene\n un salto de linea";
trim($cadena);
// El resultado de de trim en este ejemplo es
// "esto es una cadena que contiene un salto de linea".
// Se ha eliminado el espacio delantero y el sato de linea.
  • eregi_replace() - es la función más usada cuando queremos usar expresiones regulares ignorando mayúsculas y minúsculas aunque su uso esta totalmente desaconsejado desde la versión 5.3.0 de PHP, aun así os voy a explicar como usarla. Más información.

ejemplo con eregi_replace():

$cadena = "esto es un salto de linea\n con una tabulación\t";
eregi_replace("[\n|\r|\n\r|\t|\0|\x0B]", "",$cadena);

Esta función dará como resultado la cadena con todos los caracteres limpiados.

¿Que función elegir en cada momento?, yo para un uso sencillo de eliminación uso trim() pero cuando necesito hacer algo más complicado como sustitución utilizo eregi_replace().

Espero que os sirva.

5 pensamientos en “Quitar saltos de linea, tabulaciones y retorno de carro en PHP

  1. Mejor utilizar mberegi_replace(«[\n|\r|\n\r|\t||\x0B]», «»,$string); ya que eregi_replace() no se utiliza en versiones mas nuevas de PHP

Responder a guillermo Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Notificación de comentarios

Si se suscribirse cuando se publique un nuevo comentario se le notificará por correo electrónico, de esta forma podrá estar informado de todos los comentarios y podrá ver si han respondido al suyo.

También puedes suscribirte sin comentar.