¿Cómo se pueden eliminar los espacios en blanco en la variable de PHP?

7 minutos de lectura

¿Como se pueden eliminar los espacios en blanco en la
Léo Léopold Hertz 준영

Yo se esto comentario PHP.net. Me gustaría tener una herramienta similar como tr para PHP tal que puedo ejecutar simplemente

tr -d " " ""

ejecuto sin exito la funcion php_strip_whitespace por

$tags_trimmed = php_strip_whitespace($tags);

Ejecuto la función regex también sin éxito

$tags_trimmed = preg_replace(" ", "", $tags);

  • posible duplicado de Can’t get str_replace() para eliminar espacios en una cadena de PHP

    – T.Todua

    25 de marzo de 2014 a las 0:37

  • @taztodgmail Mira las fechas. Este es 2009 y el otro es 2013. El 2013 es un duplicado de este.

    – Léo Léopold Hertz 준영

    25 de marzo de 2014 a las 19:02

  • FYI: la bandera \s no incluye caracteres utf-8 como nbsp; ps, quads y fs codificados en utf-8 stackoverflow.com/questions/2227921/…

    – ppostma1

    14/10/2016 a las 15:38

  • ¡Por supuesto! Tengo un conjunto de código que lo aborda.

    – ppostma1

    14/10/2016 a las 17:04

  • ¿Por qué aparece esto en la página principal?

    – Jonathan DS

    21 oct 2019 a las 18:21

¿Como se pueden eliminar los espacios en blanco en la
pablo dixon

Desnudarse ninguna espacios en blanco, puede usar una expresión regular

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

Consulte también esta respuesta para ver algo que puede manejar espacios en blanco en cadenas UTF-8.

  • Cualquier otra solución. Esto (preg_replace) falla para mí.

    – Kathir

    28 de febrero de 2013 a las 12:06

  • Kathir, ¿con qué entrada falla?

    – Alex

    25 de abril de 2013 a las 10:49

  • ¿Por qué la gente sigue poniendo el + después de la s? No lo necesitas para esto.

    -Buttle Butkus

    19 de julio de 2013 a las 0:06

  • Es un orden de magnitud más rápido que reemplazarlos uno por uno, por eso 🙂

    –Paul Dixon

    19 de julio de 2013 a las 8:29

  • Parece que estás tratando de resolver un problema diferente al OP. Esta es una solución para eliminar todos los espacios en blanco de una cadena.

    –Paul Dixon

    13 mayo 2014 a las 14:12

1646758931 5 ¿Como se pueden eliminar los espacios en blanco en la
ppostma1

Una expresión regular no tiene en cuenta los caracteres UTF-8 de forma predeterminada. los \s meta-carácter solo representa el conjunto latino original. Por lo tanto, el siguiente comando solo elimina tabulaciones, espacios, retornos de carro y líneas nuevas

// http://stackoverflow.com/a/1279798/54964
$str=preg_replace('/\s+/', '', $str);

Con UTF-8 convirtiéndose en la corriente principal, esta expresión fallará o se detendrá con más frecuencia cuando llegue a los nuevos caracteres utf-8, dejando espacios en blanco detrás de la \s no puede dar cuenta.

Para lidiar con los nuevos tipos de espacios en blanco introducidos en unicode/utf-8, se requiere una cadena más extensa para hacer coincidir y eliminar los espacios en blanco modernos.

Debido a que las expresiones regulares de forma predeterminada no reconocen caracteres de varios bytes, solo se puede usar una metacadena delimitada para identificarlos, para evitar que los segmentos de bytes se alteren en otros caracteres utf-8 (\x80 en el conjunto cuádruple podría reemplazar a todos \x80 sub-bytes entre comillas tipográficas)

$cleanedstr = preg_replace(
    "/(\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf)+/",
    "_",
    $str
);

Esto tiene en cuenta y elimina tabulaciones, saltos de línea, tabulaciones verticales, saltos de página, retornos de carro, espacios y, además, de aquí:

siguiente línea, espacios de no separación, separador de vocales mongol, [en quad, em quad, en space, em space, three-per-em space, four-per-em space, six-per-em space, figure space, punctuation space, thin space, hair space, zero width space, zero width non-joiner, zero width joiner]separador de línea, separador de párrafo, espacio angosto sin interrupción, espacio matemático medio, unión de palabras, espacio ideográfico y espacio sin interrupción de ancho cero.

Muchos de estos causan estragos en los archivos xml cuando se exportan desde herramientas o sitios automatizados que dificultan las búsquedas de texto, el reconocimiento y se pueden pegar de forma invisible en el código fuente de PHP, lo que hace que el analizador saltar al siguiente comando (separadores de párrafo y línea) que hace que se salten líneas de código, lo que genera errores intermitentes e inexplicables a los que hemos comenzado a referirnos como “enfermedades transmitidas textualmente”.

[Its not safe to copy and paste from the web anymore. Use a character scanner to protect your code. lol]

  • ¿Como eso? Traté de explicar que el anterior ya no funciona como debería.

    – ppostma1

    14/10/2016 a las 21:26

  • ¡Excelente! ¿Puedes incluir el número de personajes que tienes en tu conjunto? – – Esto nos ayudará a identificar que realmente tienes un set completo de esos personajes. – – Acepté tu respuesta porque ahora es más completa que la anterior respuesta aceptada.

    – Léo Léopold Hertz 준영

    14/10/2016 a las 21:40


  • Gracias por la ayuda @Masi!

    – ppostma1

    18/10/2016 a las 14:43

  • Gracias, PERO usando trim() debería ser la respuesta correcta

    – Husam

    23 de marzo de 2017 a las 15:34


  • ¿No debería existir el u bandera en la expresión regular?

    usuario5147563

    19 de agosto de 2017 a las 16:51

A veces necesitaría eliminar espacios en blanco consecutivos. Puedes hacerlo así:

$str = "My   name    is";
$str = preg_replace('/\s\s+/', ' ', $str);

Producción:

My name is

  • Gracias. Exactamente lo que estaba buscando

    – lomse

    12 de febrero de 2015 a las 11:57

$string = str_replace(" ", "", $string);

Creo que preg_replace estaría buscando algo como [:space:]

¿Como se pueden eliminar los espacios en blanco en la
Kumar

Puede usar la función de recorte de php para recortar ambos lados (izquierdo y derecho)

 trim($yourinputdata," ");

O

trim($yourinputdata);

También puedes usar

ltrim() - Removes whitespace or other predefined characters from the left side of a string
rtrim() - Removes whitespace or other predefined characters from the right side of a string

Sistema: PHP 4,5,7
Documentos: http://php.net/manual/en/function.trim.php

  • Esta debería ser la respuesta correcta como lo hace de forma nativa, exactamente lo que pregunta el OP. Es pequeño, limpio y ‘ampliable’ agregando carbón extra para recortar.

    -Louis Loudog Trottier

    11 de febrero de 2017 a las 14:04

  • Trim no elimina los espacios DENTRO de la cadena, solo a la izquierda y a la derecha. Por cierto, el espacio está predeterminado en el recorte, no tiene que dar el segundo argumento

    usuario5147563

    19 de agosto de 2017 a las 16:53


1646758933 432 ¿Como se pueden eliminar los espacios en blanco en la
manzanillaCaso

Si desea eliminar todos los espacios en blanco en todas partes de $tags, ¿por qué no solo:

str_replace(' ', '', $tags);

Si desea eliminar nuevas líneas y eso requeriría un poco más …

  • Esta debería ser la respuesta correcta como lo hace de forma nativa, exactamente lo que pregunta el OP. Es pequeño, limpio y ‘ampliable’ agregando carbón extra para recortar.

    -Louis Loudog Trottier

    11 de febrero de 2017 a las 14:04

  • Trim no elimina los espacios DENTRO de la cadena, solo a la izquierda y a la derecha. Por cierto, el espacio está predeterminado en el recorte, no tiene que dar el segundo argumento

    usuario5147563

    19 de agosto de 2017 a las 16:53


1646758934 885 ¿Como se pueden eliminar los espacios en blanco en la
micropro.cz

Cualquier opción posible es usar un envoltorio de archivo personalizado para simular variables como archivos. Puedes lograrlo usando esto:

1) En primer lugar, registre su contenedor (solo una vez en el archivo, utilícelo como session_start()):

stream_wrapper_register('var', VarWrapper);

2) Luego defina su clase contenedora (está escrito muy rápido, no es completamente correcto, pero funciona):

class VarWrapper {
  protected $pos = 0;
  protected $content;
  public function stream_open($path, $mode, $options, &$opened_path) {
    $varname = substr($path, 6);
    global $$varname;
    $this->content = $$varname;
    return true;
  }
  public function stream_read($count) {
    $s = substr($this->content, $this->pos, $count);
    $this->pos += $count;
    return $s;
  }
  public function stream_stat() {
    $f = fopen(__file__, 'rb');
    $a = fstat($f);
    fclose($f);
    if (isset($a[7])) $a[7] = strlen($this->content);
    return $a;
  }
}

3) Luego use cualquier función de archivo con su contenedor en el protocolo var:// (también puede usarlo para incluir, requerir, etc.):

global $__myVar;
$__myVar="Enter tags here";
$data = php_strip_whitespace('var://__myVar');

Nota: No olvide tener su variable en el ámbito global (como global $__myVar)

  • Esto es complejo, es posible que los principiantes no deseen echarle un vistazo. Pero por mostrar esfuerzo, te votaré para que se elimine el -1 en esta publicación.

    – Viento de hierro

    18 de septiembre de 2013 a las 5:50

  • Sí, sé que es muy complejo, pero funciona y en algunos casos es realmente poderoso. Y, desafortunadamente, es la única forma (en lugar de crear archivos temporales, que es feo) de enviar variables a funciones que solo funcionan con archivos (y php_strip_whitespace no es la única). Por ejemplo, puede sustituir el código antes de requerirlo: puede crear su propio “precompilador” para PHP donde puede hacer lo que quiera. Lo uso y se vuelve muy poderoso y útil durante años de programación.

    – micropro.cz

    24 de septiembre de 2013 a las 14:19


  • global $$varname; Que horrible fue en 2013

    – B001ᛦ

    2 de julio de 2020 a las 18:21


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad